更改标签指示器背景(适用于所有标签布局视图)

Changing tab indicator background (for all the tablayout view)

我有一个问题,我找不到答案,但确实必须解决。 我正在尝试更改选项卡布局指示器的背景,但仅此而已,即如果整个 tablayout 为绿色且 tablayoutindicator 高度为 4dp 我希望 tablayoutview 的整个底部 4dp 将采用另一种颜色(可以说是红色)是那可能吗? 在您回答之前,请注意我不是在谈论 app:tabIndicatorColor 属性,而是在 tabIndicator 的整个高度上(不管 tabIndicator 本身)。

例如,在所附的图像上,app:tabIndicatorColor 是白色的,但它的背景是黑色的,而整个视图是蓝色的。

编辑 - 我设法使用具有黑色底部视图的 FrameLayout 来完成此操作,而 tablayout 位于其上方及其属性,我仍在寻找更多 "clean" 方法来实现相同的事情

要实现您的目标,您可以尝试以下方法

创建选择器tab_layout_selector

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_selected="false" android:state_pressed="false">

    <layer-list>

        <!-- Stripe bottom indicator color -->
        <item android:top="-5dp" android:left="-5dp" android:right="-5dp">
            <shape android:shape="rectangle">
                <stroke android:color="@color/red" android:width="4dp"/>
            </shape>
        </item>

    </layer-list>

</item>

</selector>

最后,在你的 TabLayout 添加

 <android.support.design.widget.TabLayout


    <!-- Whole tab background -->
    android:background="@color/white"

    <!-- Line color -->
    android:tabBackground="@drawable/tab_layout_selector"

    .... Others....
    />