TabLayout+ViewPager制作简单导航栏

Posted ymtianyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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即可,具体选中后的颜色可以在颜色属性里设置

tab_text.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/colorAccent" android:state_checked="true"/>
    <item android:color="@color/colorAccent" android:state_selected="true"/>
    <item android:color="#000"/>
</selector>

以上是关于TabLayout+ViewPager制作简单导航栏的主要内容,如果未能解决你的问题,请参考以下文章

Android滑动导航菜单TabLayout+ViewPager+Fragment

TabLayout+ViewPager+Fragment制作页卡

Kotlin 实现可点击可滑动顶部导航栏(AppBarLayout+TabLayout)和左右切换可滑动页面(ViewPager)的功能

TabLayout+ViewPager的简单使用

如何从(和替换)TabLayout 和 ViewPager 移动到新片段?

自适应 Tab 宽度可以滑动文字逐渐变色的 TabLayout(仿今日头条顶部导航)