TabLayout關聯ViewPager后不顯示文字的解決方法
當使用addTab()方法給tablayout動態(tài)添加文字時可能會出現不顯示標題文字的問題,而真實情況并不是不顯示文字,而是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方法添加標題,而應先創(chuàng)建一個list,將其設置在PageAdapter的getPageTitle方法中,代碼如下:
@Override public CharSequence getPageTitle(int position) { return list_title.get(position); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- TabLayout+ViewPager實現切頁的示例代碼
- TabLayout實現ViewPager指示器的方法
- Android 中基于TabLayout+ViewPager實現標簽卡效果
- Android中TabLayout+ViewPager實現tab和頁面聯動效果
- Android中TabLayout+ViewPager 簡單實現app底部Tab導航欄
- Android中TabLayout結合ViewPager實現頁面切換
- Android中TabLayout結合ViewPager實現頁面切換效果
- AndroidUI組件SlidingTabLayout實現ViewPager頁滑動效果
- TabLayout+ViewPager2的簡單使用詳解
相關文章
Android實現viewpager實現循環(huán)輪播效果
這篇文章主要為大家詳細介紹了Android實現viewpager實現循環(huán)輪播效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03