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

TabLayout关联ViewPager后不显示文字的解决方法,第1张

概述当使用addTab()方法给tablayout动态添加文字时可能会出现不显示标题文字的问题,而真实情况并不是不显示文字,而是ViewPager又给TabLayout加了许多空的标题,导致之前手动添加的标题被挤到后面,不信你多往后翻一翻是

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

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后不显示文字的解决方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1143751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存