TabLayout关联ViewPager后不显示文字
2017-06-07 18:51
896 查看
当使用addTab()方法给tablayout动态添加文字时可能会出现不显示标题文字的问题,而真实情况并不是不显示文字,而是ViewPager又给TabLayout加了许多空的标题,导致之前手动添加的标题被挤到后面,不信你多往后翻一翻是不是就出来了。那么这些空的标题是如何产生的呢,通过分析TabLayout源码很快就查出这个问题,其中有个方法的代码是这样的:
我们注意看这一行:
恍然大悟了吧,可以看到在TabLayout里面调用了PageAdapter的方法来添加标题,而添加标题的个数就是在PageAdapter的getCount()方法中设置的,标题的文字是在PageAdapter的getPageTitle()方法中设置。
到此,解决方法就出来了:不要为ViewPager手动使用addTab方法添加标题,而应先创建一个list,将其设置在PageAdapter的getPageTitle方法中,代码如下:
private void populateFromPagerAdapter() { removeAllTabs(); if (mPagerAdapter != null) { final int adapterCount = mPagerAdapter.getCount(); for (int i = 0; i < adapterCount; i++) { addTab(newTab().setText(mPagerAdapter.getPageTitle(i)), false); } // Make sure we reflect the currently set ViewPager item if (mViewPager != null && adapterCount > 0) { final int curItem = mViewPager.getCurrentItem(); if (curItem != getSelectedTabPosition() && curItem < getTabCount()) { selectTab(getTabAt(curItem)); } } } else { removeAllTabs(); } }
我们注意看这一行:
for (int i = 0; i < adapterCount; i++) { addTab(newTab().setText(mPagerAdapter.getPageTitle(i)), false); }
恍然大悟了吧,可以看到在TabLayout里面调用了PageAdapter的方法来添加标题,而添加标题的个数就是在PageAdapter的getCount()方法中设置的,标题的文字是在PageAdapter的getPageTitle()方法中设置。
到此,解决方法就出来了:不要为ViewPager手动使用addTab方法添加标题,而应先创建一个list,将其设置在PageAdapter的getPageTitle方法中,代码如下:
@Override public CharSequence getPageTitle(int position) { return list_title.get(position); }
相关文章推荐
- TabLayout关联ViewPager后不显示文字的解决方法
- 关于TabLayout和ViewPager联动不显示文字
- 关于TabLayout与Viewpager绑定后TAB上的文字不显示问题
- TabLayout使用setupWithViewPager()方法绑定Viewpager后不显示文字
- TabLayout使用setupWithViewPager()方法绑定Viewpager后不显示文字
- TabLayout与ViewPager关联,不显示Tab问题
- TabLayout+Viewpager+Fragment+选中的Tab突出显示
- viewPager 结合 PagerSlidingTabStrip 使用tab文字显示不全问题探究
- 关于在Fragment中使用多组ViewPager+TabLayout出现的部分Fragment不显示问题
- Tablayout和ViewPager的结合使用及滑动RecycleView隐藏显示Toolbar和右下角的悬浮窗
- ViewPager+TabLayout注意(版本号问题跟不显示Tab的原因)
- TabLayout 和 ViewPager 组合显示Fragment
- TabLayout下ViewPager显示Json解析数据
- TabLayout+ViewPager+Fragment实现带图标和文字的底部导航栏
- TabLayout关联ViewPager(滑动ViewPager,TabLayout会有横杠带颜色跟着滑动,可以设置字体颜色跟随滑动)
- TabLayout与ViewPager同步后Tab的标题不显示
- Tablayout与ViewPager联动时不显示Tablayout上面的标题
- fragment viewpager和tablayout相互嵌套内容不显示和组件不显示问题
- Tablayout + Viewpager + Fragment 联动显示