TabLayout关联ViewPager后不显示文字的解决方法

这篇文章主要为大家详细介绍了TabLayout关联ViewPager后不显示文字的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

当使用addTab()方法给tablayout动态添加文字时可能会出现不显示标题文字的问题,而真实情况并不是不显示文字,而是ViewPager又给TabLayout加了许多空的标题,导致之前手动添加的标题被挤到后面,不信你多往后翻一翻是不是就出来了。那么这些空的标题是如何产生的呢,通过分析TabLayout源码很快就查出这个问题,其中有个方法的代码是这样的:

 private void populateFromPagerAdapter() { removeAllTabs(); if (mPagerAdapter != null) { final int adapterCount = mPagerAdapter.getCount(); for (int i = 0; i  0) { final int curItem = mViewPager.getCurrentItem(); if (curItem != getSelectedTabPosition() && curItem 

我们注意看这一行:

 for (int i = 0; i 

恍然大悟了吧,可以看到在TabLayout里面调用了PageAdapter的方法来添加标题,而添加标题的个数就是在PageAdapter的getCount()方法中设置的,标题的文字是在PageAdapter的getPageTitle()方法中设置。
到此,解决方法就出来了:不要为ViewPager手动使用addTab方法添加标题,而应先创建一个list,将其设置在PageAdapter的getPageTitle方法中,代码如下:

 @Override public CharSequence getPageTitle(int position) { return list_title.get(position); } 

以上就是TabLayout关联ViewPager后不显示文字的解决方法的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » 移动