TabLayout+ViewPager制作简单导航栏

先看样例,有图有真相

绑定viewpager

此处主要说明tablayout的使用方法,viewpager绑定fragment的介绍在其他文章说明

mBinding.tabsLayout.setupWithViewPager(mBinding.vpTabs);
常见问题
  • 切记,一定要先绑定viewpage再添加tab,否则tab的标题无法正常显示出来

  • setupwithviewpager会在后台做很多事,比如清空tabs等,为了更安全的显示我们的tabs,在绑定viewpager之后,先清空一下tabs再添加

    mBinding.tabsLayout.removeAllTabs();
    

添加 tab

mBinding.tabsLayout.addTab(mBinding.tabsLayout.newTab().setText("所有书籍"));
mBinding.tabsLayout.addTab(mBinding.tabsLayout.newTab().setText("发现"));

或者使用

private String[] lstTitles = new String[]{"所有书籍", "发现"};
for(int i = 0; i < lstTitles.length; i++){
    mBinding.tabsLayout.addTab(mBinding.tabsLayout.newTab());
    mBinding.tabsLayout.getTabAt(i).setText(lstTitles[i]);
}

常用属性设定

设定文本颜色
app:tabTextColor="@color/tab_text" //设定标题文本颜色
app:tabSelectedTextColor="@color/tab_text" //设定标题文本选中后颜色

上面只需要设置tabtextcolor即可,具体选中后的颜色可以在颜色属性里设置

在 res/drawable/目录下添加 tab_text 选择器控制默认和选中后的字体颜色

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/colorAccent" android:state_selected="true"/>
    <item android:color="#000"/>
</selector>
取消滚动指示线
app:tabIndicatorHeight="0dp"
设定标签文字样式

没有属性可以直接设定文字大小,但可以通过样式来设定
自定义一个 style 样式

    <style name="tabTextAppearance">
        <item name="android:textSize">22sp</item>
    </style>
app:tabTextAppearance="@style/tabTextAppearance"
posted @ 2020-06-30 10:17  曲幽  阅读(725)  评论(2编辑  收藏  举报