更改标签指示符背景(针对所有标签布局视图)

时间:2018-06-19 20:53:38

标签: android android-tablayout

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

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

enter image description here

编辑- 我设法使用一个具有黑色底视图的FrameLayout来实现它,而TabLayout则以其属性位于其上方,我仍在寻找一种更“干净”的方法来实现相同的目的

1 个答案:

答案 0 :(得分:0)

要实现您的期望,可以尝试以下方法

创建选择器 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....
    />