国产探花免费观看_亚洲丰满少妇自慰呻吟_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 數據解析

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿克陶县| 灵川县| 南涧| 靖安县| 乌拉特前旗| 林芝县| 将乐县| 祁阳县| 灵石县| 三江| 澄迈县| 砀山县| 两当县| 新余市| 广宁县| 达日县| 庄浪县| 汉阴县| 西林县| 濮阳县| 额尔古纳市| 保德县| 屯昌县| 宁晋县| 永城市| 西安市| 肥城市| 马尔康县| 建阳市| 吉隆县| 满城县| 宁陕县| 迭部县| 宁都县| 阿克陶县| 横峰县| 嘉祥县| 珠海市| 昆山市| 抚宁县| 赣榆县|