Android(安卓)TabLayout 不显示标题的解决方法
16lz
2021-01-24
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 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)); } } } }
第一次写博客,纪念一下,希望以后坚持,把有价值的东西与大家分享~
科科
更多相关文章
- android studio 奇怪问题收集(gradle问题详解)
- Android(安卓)8.1开启Bluetooth A2DP sink
- Android(安卓)获取window状态栏和标题栏的高度
- 打包Android报错:Error building Player: CommandInvokationFailu
- [已解决] MediaPlayer.setVolume设置声音大小失效问题
- android proguard webview javascript interface
- Android(安卓)Support库和AndroidX冲突问题
- 【Android】利用服务Service创建标题栏通知
- android 8.1 蓝牙打不开之CLOCK_BOOTTIME_ALARM问题