1.为什么要自定义indicator
TabLayout自带的indicator不能设置宽度和大小,TabLayout没有提供属性和动态设置方法
<com.google.android.material.tabs.TabLayout
android:id="@+id/status_tab"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_marginLeft="28dp"
android:layout_marginTop="20dp"
app:tabIndicator="@drawable/energy_indicator"
app:tabTextAppearance="@style/energy_TabLayoutTextStyle"
app:tabGravity="start"
app:tabSelectedTextColor="@color/common_colorAccent"
app:tabIndicatorColor="@color/common_colorAccent"
app:tabIndicatorHeight="1dp"
app:tabMinWidth="85dp"
app:tabMaxWidth="200dp"
app:tabIndicatorFullWidth="false"
app:tabMode="scrollable"
app:tabPaddingEnd="3dp"
app:tabPaddingStart="3dp"
app:tabRippleColor="@null" />
energy_indicator.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<item android:gravity="center">
<shape>
<size android:width="40dp"
android:height="1dp"/>
<solid android:color="@color/common_colorAccent"/>
</shape>
</item>
</layer-list>