TabLayout自定義Tab不顯示的問題

關(guān)于如何自定義TbaLayout可以去網(wǎng)上搜,有很多文章介紹,這里就不敘述了,一般自定義Tab需要調(diào)用tab的setCustomView方法,
但是發(fā)現(xiàn)設(shè)置無效,后來查看源碼才知道,原來在調(diào)用tab.setupWithViewPager方法后會(huì)刪掉我們之前自定義的tab,所以解決辦法就是:

在調(diào)用tablayout.setupWithViewPager方法之后必須重新調(diào)用一下各個(gè)tab的setCustomView方法

        //1.先設(shè)置Adapter
        mVpViewPager.setAdapter(mPagerAdapter);
        //2.將TabLayout和Viewpage關(guān)聯(lián)上
        mTab.setupWithViewPager(mVpViewPager);
        //3.重點(diǎn)來了:必須重新調(diào)用setCustomView方法來設(shè)置自定義的View
        for (int i = 0; i < mTlTab.getTabCount(); i++) {
            mTlTab.getTabAt(i).setCustomView(mPagerAdapter.getTabView(i));
        }
        
        //4. 設(shè)置監(jiān)聽TabSelectedListener事件,來動(dòng)態(tài)的更新自定義Tab的顯示狀態(tài)
        mTlTab.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                //TODO 選中當(dāng)前的Tab觸發(fā)此方法
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
                //TODO 取消上次選中的tab會(huì)觸發(fā)此方法
            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {
            }
        });
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容