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));                }            }        }    }

第一次写博客,纪念一下,希望以后坚持,把有价值的东西与大家分享~
科科

更多相关文章

  1. android studio 奇怪问题收集(gradle问题详解)
  2. Android(安卓)8.1开启Bluetooth A2DP sink
  3. Android(安卓)获取window状态栏和标题栏的高度
  4. 打包Android报错:Error building Player: CommandInvokationFailu
  5. [已解决] MediaPlayer.setVolume设置声音大小失效问题
  6. android proguard webview javascript interface
  7. Android(安卓)Support库和AndroidX冲突问题
  8. 【Android】利用服务Service创建标题栏通知
  9. android 8.1 蓝牙打不开之CLOCK_BOOTTIME_ALARM问题

随机推荐

  1. Android读取工程内嵌资源文件的两种方法
  2. Android Intent:不同应用程序之间通信的桥
  3. 关于Android WebView内容不同屏幕兼容处
  4. android基于ffmpeg本地视频、在线视频、
  5. sqlite cursor
  6. Android社交系统
  7. 210开发板Android系统串口程序
  8. Unity3D For Android 开发教程--环境搭建
  9. 在英特尔® 凌动™ 处理器上将 OpenGL*
  10. 打造浪漫的Android表白程序