Android TabLayout 不显示标题的解决方法
TabLayout 是目前非常流行的一种交互组件,在使用TabLayout时,可能会出现Tab标题不显示的问题,查看代码发现
tabLayout.setupWithViewPager(viewPager);
这个方法会执行
/**
* Remove all tabs from the action bar and deselect the current tab.
*/
public void removeAllTabs() {
// Remove all the views
for (int i = mTabStrip.getChildCount() - 1; i >= 0; i--) {
removeTabViewAt(i);
}
for (final Iterator<Tab> i = mTabs.iterator(); i.hasNext();) {
final Tab tab = i.next();
i.remove();
tab.reset();
sTabPool.release(tab);
}
mSelectedTab = null;
}
该方法会将所有的tab删除.
最简单的解决方法,在我看源码时,发现:
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);//!!!这句会获取pager的title,所以只需要在adapter里重写getTitle方法即可
}
// 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));
}
}
}
}
第一次写博客,纪念一下,希望以后坚持,把有价值的东西与大家分享~
科科