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

首頁 > 系統 > Android > 正文

TabLayout關聯ViewPager后不顯示文字的解決方法

2019-10-22 18:23:01
字體:
來源:轉載
供稿:網友

當使用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);  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玉树县| 金坛市| 枣强县| 翁牛特旗| 镇宁| 德兴市| 武夷山市| 宜章县| 梁河县| 金平| 蓬安县| 浪卡子县| 宁陕县| 苏尼特右旗| 永川市| 富裕县| 天台县| 赤水市| 涟水县| 丰顺县| 丰都县| 天全县| 襄城县| 慈溪市| 巴南区| 莆田市| 娱乐| 海淀区| 桦甸市| 高雄市| 黄浦区| 垫江县| 元阳县| 刚察县| 卫辉市| 万宁市| 灵璧县| 沧州市| 高清| 镇安县| 秭归县|