繁体   English   中英

如何在tablayout中更改选定选项卡的颜色?

[英]How to change color for selected tabs in tablayout?

假设我想根据以下条件为tablayout中的标签设置颜色1.未选择标签=蓝色2.当前标签=绿色3.所选标签=红色

这里使用以下代码来更改未选中和当前选项卡的颜色

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- UNSELECTED TAB STATE -->
    <item android:state_selected="false" android:state_pressed="false">
        <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
            <!-- Bottom indicator color for the UNSELECTED tab state -->
            <item android:top="-5dp" android:left="-5dp" android:right="-5dp">
                <shape android:shape="rectangle">
                    <stroke android:color="#65acee" android:width="2dp"/>
                </shape>
            </item>
        </layer-list>
    </item>
    <!-- Current TAB STATE -->
    <item android:state_selected="true" android:state_pressed="false">
        <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
            <!-- Tab background color for the SELECTED tab state -->
            <item>
                <shape>
                    <solid android:color="#cef9ff"/>
                </shape>
            </item>
            <!-- Bottom indicator color for the SELECTED tab state -->
            <item android:top="-5dp" android:left="-5dp" android:right="-5dp">
                <shape android:shape="rectangle">
                    <stroke android:color="#5beea6" android:width="2dp"/>
                </shape>
            </item>
        </layer-list>
    </item>
</selector>

但未能保留以前选择的标签

参考这个 图片

汽车阅读被选中状态捕获照片和签名是未选择状态

我正在使用查看寻呼机...从汽车阅读移动到捕捉照片...汽车阅读背景应该是绿色

您将无法使用选择器。 因为一旦您选择新标签,Android会将旧标签标记为未选中。 您需要做的是创建一个TabLayout.OnTabSelectedListener()然后在onTabSelected和onTabUnselected方法中,您可以获取选项卡的customView并在其上设置背景颜色。

注意:这需要您为选项卡设置自定义视图。 否则,您无法以编程方式更改背景颜色。 使用默认选项卡布局更改背景颜色的唯一方法是通过样式,这在您的情况下不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM