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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

TabLayout + ViewPager 使用正確姿勢(shì)

2019-11-09 17:15:18
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

網(wǎng)上很多反應(yīng)使用TabLayout 的 setupWithViewPager 踩的坑 (我承認(rèn)我也踩了),廢話少說(shuō),直接總結(jié)我的血淚史。

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

采用 setupWithViewPager 方法 ,正確姿勢(shì)應(yīng)該是重寫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關(guān)聯(lián)起來(lái)。 此處 有坑!!setupWithViewPager 會(huì) removeAllTabs(),之前add的tab 文字不顯示的原因 mTabLayout.setupWithViewPager(mViewPager); // //設(shè)置可以滑動(dòng) 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)); //設(shè)置可以滑動(dòng) mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); }

OK, 可以參考 仿CSDN客戶端首頁(yè)(一)—-TabLayout實(shí)現(xiàn)選項(xiàng)卡滑動(dòng)效果


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 晋州市| 沐川县| 农安县| 长治县| 黔西| 竹北市| 利川市| 平泉县| 姚安县| 三都| 崇义县| 健康| 宝清县| 双峰县| 瓮安县| 香格里拉县| 滨州市| 永春县| 阿拉善盟| 绍兴市| 襄樊市| 连云港市| 沿河| 西青区| 灵石县| 道孚县| 石棉县| 洱源县| 清丰县| 兰溪市| 东丽区| 盐津县| 新密市| 育儿| 鹿邑县| 抚宁县| 太原市| 永泰县| 栖霞市| 桦川县| 阿瓦提县|