国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

TabLayout + ViewPager 使用正確姿勢

2019-11-09 16:06:09
字體:
來源:轉載
供稿:網友

網上很多反應使用TabLayout 的 setupWithViewPager 踩的坑 (我承認我也踩了),廢話少說,直接總結我的血淚史。

TabLayout + ViewPager 可以有兩種使用方式 :

采用 setupWithViewPager 方法 ,正確姿勢應該是重寫PagerAdapter 的 getPageTitle(int position) 方法PRivate void initPager() { fragmentList = new ArrayList<>(); Collections.addAll(tabTitleList, tabTitle); for (int i = 0; i < tabTitle.length; i++) { CardFragment fragment = new CardFragment(); fragmentList.add(fragment); } adapter = new CardPagerAdapter(getSupportFragmentManager(), fragmentList,tabTitleList); mViewPager.setAdapter(adapter); //將TabLayout和ViewPager關聯起來。 此處 有坑!!setupWithViewPager 會 removeAllTabs(),之前add的tab 文字不顯示的原因 mTabLayout.setupWithViewPager(mViewPager); // //設置可以滑動 mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);}

CardPagerAdapter 代碼

public class CardPagerAdapter extends FragmentStatePagerAdapter { private List<Fragment> data; private ArrayList<String> tabTitleList = new ArrayList<String>(); public CardPagerAdapter(FragmentManager fm, List<Fragment> data, ArrayList<String> tabTitleList ) { super(fm); this.data = data; this.tabTitleList=tabTitleList; } @Override public Fragment getItem(int position) { return data == null ? null : data.get(position); } @Override public int getCount() { return data == null ? 0 : data.size(); } @Override public CharSequence getPageTitle(int position) { return tabTitleList.get(position); }}不采用 setupWithViewPager 方法 ,不需要重寫 PagerAdapter 的 getPageTitle 方法private void initPager() { mTabLayout.addTab(mTabLayout.newTab().setText("A")); mTabLayout.addTab(mTabLayout.newTab().setText("B")); mTabLayout.addTab(mTabLayout.newTab().setText("C")); mTabLayout.addTab(mTabLayout.newTab().setText("D")); mTabLayout.addTab(mTabLayout.newTab().setText("E")); mTabLayout.addTab(mTabLayout.newTab().setText("F")); fragmentList = new ArrayList<>(); Collections.addAll(tabTitleList, tabTitle); for (int i = 0; i < mTabLayout.getTabCount(); i++) { CardFragment fragment = new CardFragment(); fragmentList.add(fragment); } adapter = new CardPagerAdapter(getSupportFragmentManager(), fragmentList,tabTitleList); mViewPager.setAdapter(adapter); mTabLayout.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager)); mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout)); //設置可以滑動 mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); }

OK, 可以參考 仿CSDN客戶端首頁(一)—-TabLayout實現選項卡滑動效果


上一篇:ShareSdk第三方分享

下一篇:Json 數據解析

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遵义市| 宜阳县| 高雄市| 连山| 乃东县| 马龙县| 曲沃县| 平泉县| 仙桃市| 昌邑市| 内黄县| 贡觉县| 察隅县| 乌恰县| 曲水县| 章丘市| 五常市| 天柱县| 嘉荫县| 固阳县| 会昌县| 贡嘎县| 和田县| 连南| 靖远县| 祁门县| 广水市| 西平县| 鹿泉市| 雅安市| 乐安县| 灌南县| 安龙县| 天台县| 泸西县| 彰化市| 内丘县| 宁夏| 同江市| 武陟县| 耒阳市|