Android设置TabLayout及下划线宽度

Posted 程思扬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android设置TabLayout及下划线宽度相关的知识,希望对你有一定的参考价值。

Tablayout的使用
属性

app:tabMod 设置Tab模式
app:tabTextColor 设置文本颜色
app:tabSelectedTextColor 设置选中文本颜色
app:tabIndicatorColor 设置下滑条颜色
app:tabMaxWidth=“xxdp” 设置最大的tab宽度
app:tabMinWidth=“xxdp” 设置最小的tab宽度

动态创建(使用java代码添加tab)
val fruitList = listOf(“Tab1”,“Tab2”,“Tab3”,“Tab4”,“Tab5”)
先是通过findviewbyid方法找到实例,之后调用tablayout的newTab方法来创建tab

		with(mTabLayout) 
            this?.addTab(tabLayout.newTab().setText(fruitList[0]));
            this?.addTab(tabLayout.newTab().setText(fruitList[1]));
            this?.addTab(tabLayout.newTab().setText(fruitList[2]));
            this?.addTab(tabLayout.newTab().setText(fruitList[3]))
            this?.addTab(tabLayout.newTab().setText(fruitList[3]))
        ;

不过,使用动态的话,如果不设置相关的属性,是不能达到两个选项各自占长度一半,还得给Tablayout加上下列属性

app:tabMaxWidth="0dp"
 app:tabGravity="fill"
app:tabMode="fixed"

Tablayout与Viewpager联用
一句代码即可搞定
tabLayout!!.setupWithViewPager(viewPager)
有些时候可能会出现不显示文本的情况,这时候需要在 PagerAdapter 里面重写一个方法

@Override
public CharSequence getPageTitle(int position) 
    return fruitList[position];

    <com.google.android.material.tabs.TabLayout
        android:id="@+id/tabLayout"
        android:layout_width="match_parent"
        android:layout_height="@dimen/dp_48"
        app:tabBackground="@color/white"
        app:tabGravity="center"
        app:tabIndicator="@drawable/center_tab_line"
        app:tabIndicatorFullWidth="false"
        app:tabIndicatorHeight="2dp"
        app:tabMode="scrollable"
        app:tabRippleColor="@null"
        app:tabSelectedTextColor="#1E90FF"
        tools:ignore="MissingConstraints">

主要是这个:

app:tabIndicator=“@drawable/center_tab_line”

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:opacity="opaque"
    tools:targetApi="23">

    <item
        android:width="40dp"
        android:gravity="center_horizontal">
        <shape android:shape="rectangle">
            <solid android:color="#08A8F2" />
        </shape>
    </item>
</layer-list>

最后根据 android:width=“40dp” 就可以设置指定的宽度,我这里是40dp

以上是关于Android设置TabLayout及下划线宽度的主要内容,如果未能解决你的问题,请参考以下文章

TabLayout如何设置下划线(Indicator)宽度

TabLayout下划线指示器自适应文字宽度

TabLayout设置下划线(Indicator)宽度

Android TabLayout 使用进阶(含源码)

Android TabLayout 使用进阶(含源码)

android 怎么设置tablayout中tab的下划线的长度 跟随 标签中的text文本的长度变化