android 不固定tab,TabLayout自定义Tab不显示的问题

关于如何自定义TbaLayout可以去网上搜,有很多文章介绍,这里就不叙述了,一般自定义Tab需要调用tab的setCustomView方法,

但是发现设置无效,后来查看源码才知道,原来在调用tab.setupWithViewPager方法后会删掉我们之前自定义的tab,所以解决办法就是:

在调用tablayout.setupWithViewPager方法之后必须重新调用一下各个tab的setCustomView方法

//1.先设置Adapter

mVpViewPager.setAdapter(mPagerAdapter);

//2.将TabLayout和Viewpage关联上

mTab.setupWithViewPager(mVpViewPager);

//3.重点来了:必须重新调用setCustomView方法来设置自定义的View

for (int i = 0; i < mTlTab.getTabCount(); i++) {

mTlTab.getTabAt(i).setCustomView(mPagerAdapter.getTabView(i));

}

//4. 设置监听TabSelectedListener事件,来动态的更新自定义Tab的显示状态

mTlTab.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {

@Override

public void onTabSelected(TabLayout.Tab tab) {

//TODO 选中当前的Tab触发此方法

}

@Override

public void onTabUnselected(TabLayout.Tab tab) {

//TODO 取消上次选中的tab会触发此方法

}

@Override

public void onTabReselected(TabLayout.Tab tab) {

}

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值