Android TabLayout 不显示标题的解决方法

本文介绍了解决Android TabLayout标题不显示的问题。通过分析源码,发现在使用setupWithViewPager方法时会调用removeAllTabs方法删除所有tab。解决办法是在PagerAdapter中重写getPageTitle方法以设置Tab标题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值