【问题标题】:Changing the color of selected tab [duplicate]更改所选选项卡的颜色 [重复]
【发布时间】:2018-01-01 19:02:18
【问题描述】:

我正在使用tabLayout 在我的应用程序中使用标签。我想更改所选标签的背景颜色和文本颜色。我正在通过这样做来更改整个tabLayout 的背景颜色

 android:background="@color/colorAccent"

并更改 textcolor 和 selectedtextcolor

app:tabTextColor="#000000"
app:tabSelectedTextColor="@color/colorAccent"

但是我现在要做的就是在选择该特定选项卡时更改它的背景颜色?怎么做 ? 在此先感谢:)

【问题讨论】:

  • 请不要重复提问

标签: android android-tablayout


【解决方案1】:

您可以在标签布局小部件中这样做

<android.support.design.widget.TabLayout

    app:tabBackground="@drawable/selector"

    />

在drawable文件夹中定义你的selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
     android:drawable="@color/tab_selected_color" 
     android:state_selected="true"/>
    <item 
     android:drawable="@color/tab_unselected_color"
     android:state_selected="false"/>
</selector>

【讨论】:

  • 工作完美...谢谢!!
【解决方案2】:

在 TabLayout 中更改选项卡的背景颜色相当简单 使用 Android 提供的设计支持库。你可以简单地 使用更改整个 TabLayout 的背景 app:tabBackground 属性,您可以更改选项卡指示器颜色 使用 app:tabIndicatorColor 属性,但如果有更好的方法 你想要更多的功能。更改选项卡布局的更好方法 颜色使用选择器,使用选择器可以有不同的 选项卡不同状态的背景,即选中、未选中等。

请按以下步骤操作:

1.创建一个可绘制的 tab_selected_background,它将用作选定选项卡的背景

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/colorPrimary" />
    <corners android:radius="4dp" />
</shape>

2。创建一个选择器 tab_selector 将用作选项卡布局的背景:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/tab_selected_background" android:state_selected="true"/>
    <item android:drawable="@color/tab_background_unselected"/>
</selector>

3.现在最终创建选项卡布局,并使用我们刚刚创建的选择器作为选项卡布局的背景。

  <android.support.design.widget.TabLayout
        android:id="@+id/subChordTabs"
        android:layout_width="match_parent"
        android:layout_height="56dp"
        app:tabGravity="center"
        app:tabMode="scrollable"
        app:tabBackground="@drawable/tab_selector"
        app:tabIndicatorColor="@color/tabIndicator"
        android:padding="8dp"
        app:tabIndicatorHeight="2dp"/>

你必须得到如下结果,

【讨论】:

    猜你喜欢
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多