這篇文章將為大家詳細(xì)講解有關(guān)TabLayout關(guān)聯(lián)ViewPager后不顯示文字怎么辦,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
當(dāng)使用addTab()方法給tablayout動態(tài)添加文字時可能會出現(xiàn)不顯示標(biāo)題文字的問題,而真實情況并不是不顯示文字,而是ViewPager又給TabLayout加了許多空的標(biāo)題,導(dǎo)致之前手動添加的標(biāo)題被擠到后面,不信你多往后翻一翻是不是就出來了。那么這些空的標(biāo)題是如何產(chǎn)生的呢,通過分析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里面調(diào)用了PageAdapter的方法來添加標(biāo)題,而添加標(biāo)題的個數(shù)就是在PageAdapter的getCount()方法中設(shè)置的,標(biāo)題的文字是在PageAdapter的getPageTitle()方法中設(shè)置。
到此,解決方法就出來了:不要為ViewPager手動使用addTab方法添加標(biāo)題,而應(yīng)先創(chuàng)建一個list,將其設(shè)置在PageAdapter的getPageTitle方法中,代碼如下:
@Override public CharSequence getPageTitle(int position) { return list_title.get(position); }
關(guān)于“TabLayout關(guān)聯(lián)ViewPager后不顯示文字怎么辦”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
新聞名稱:TabLayout關(guān)聯(lián)ViewPager后不顯示文字怎么辦-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://chinadenli.net/article12/ddiigc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、企業(yè)網(wǎng)站制作、全網(wǎng)營銷推廣、App開發(fā)、網(wǎng)站設(shè)計公司、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)