Как изменить фон всего TabIndicator в TabLayout?

Мне надо сделать TabLayout следующего вида: TabLayout

посмотрев пару разных библиотек, понял что они мне не подходят даже подходящая по дизайну https://github.com/long1eu/SpaceTabLayout устарела и становится в приложение как-то криво, полазив по ее коду у меня не получилось переделать ее так чтобы она работала как мне надо, решил сделать совсем по-простому

<com.google.android.material.tabs.TabLayout
        android:id="@+id/tab_layout"
        style="@style/MyTabLayout"
        android:background="@color/white"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_gravity="bottom"
        android:minHeight="?attr/actionBarSize"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:tabBackground="@drawable/tab_color_selector"
        app:tabIndicatorHeight="25dp" />

MyTabLayout

 <style name="MyTabLayout" parent="Base.Widget.Design.TabLayout">
        <item name="tabIndicatorColor">@color/black</item>
        <item name="tabIndicatorGravity">top</item>
        <item name="tabIndicator">@drawable/background</item>
    </style>

tab_color_selector

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/shape_gradient" android:state_selected="true"/>
    <item android:drawable="@color/white"/>
</selector>

shape_gradient

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />
            <corners
                android:radius="0dp" />
        </shape>
    </item>
    <item
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp">
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />
            <gradient
                android:angle="0"
                android:endColor="#3171F3"
                android:startColor="#569CE9" />
            <corners
                android:radius="200dp" />
        </shape>
    </item>

</layer-list>

Вот что вышло: MyTabLayout

В TabIndicator просто векторное изображение, вопрос в следующем можно как-нибудь поменять фон линии индикатора на мой градиент, не tabIndicatorColor а именно цвет всей полосы? введите сюда описание изображения

Так как фон фрагментов у меня везде один, думаю выглядеть будет хорошо, если у кого-то есть другие решения как можно сделать TabLayout такого стиля напишите пожалуйста тоже


Ответы (0 шт):