【问题标题】:Cannot change active text color on TabLayout无法更改 TabLayout 上的活动文本颜色
【发布时间】:2015-09-04 11:13:10
【问题描述】:

我正在尝试在 android.support.design.widget.TabLayout 中设置选项卡的样式我无法更改选定的选项卡颜色,它始终设置为我的应用主题中的 textColorPrimary,但我需要它们不同颜色。

我尝试在适用于 TabLayout 的 styles.xml 中设置值,但我读到您无法通过这种方式更改活动选项卡文本颜色,尽管我可以更改未选择的选项卡文本颜色。我也试过:

tabLayout.setTabTextColors(getResources().getColorStateList(R.color.selector));

tabLayout.setTabTextColors(R.color.Green, R.color.Blue);

是否可以覆盖选定的选项卡文本颜色?

【问题讨论】:

标签: android


【解决方案1】:

编辑:让它工作,

tabLayout.setTabTextColors(getResources().getColorStateList(R.color.selector));

在附加到视图寻呼机之前需要调用

【讨论】:

  • 这在支持设计库的 v23.0.1 中是否适合您?
  • 我试图在 TabLayout xml 中使用 android:textColor="@color/tab_text_color_selector",但在设计 v23.1.1 中必须使用你的方式。不知道为什么会这样! :-/ 我会继续查看我的代码,但这可以解决问题。 FWIW:getResources(...) 未被弃用。
【解决方案2】:

实际上,您可以通过定义自定义TabLayout 样式来自定义活动标签文本颜色。查看tabSelectedTextColor 参数。以下是自定义tabSelectedTextColortabIndicatorColortabTextAppearance(文字大小/颜色等)的示例:

<android.support.design.widget.TabLayout
    android:id="@+id/tabLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@style/CustomTabLayoutStyle"/>

样式:

<style name="CustomTabLayoutStyle" parent="Base.Widget.Design.TabLayout">
    <item name="tabSelectedTextColor">@color/tab_text_selected</item>
    <item name="tabIndicatorColor">@color/tab_indicator</item>
    <item name="tabTextAppearance">@style/CustomTabTexStyle</item>
</style>

<style name="CustomTabTexStyle" parent="TextAppearance.Design.Tab">
    <item name="android:textSize">14sp</item>
    <item name="android:textColor">@color/tab_text</item>
    <item name="textAllCaps">false</item>
    ...
</style>

【讨论】:

  • 注意.. 必须是style,不适用于android:theme
【解决方案3】:

将以下代码添加到您的 xml:

app:tabSelectedTextColor="@color/app_color"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 2017-03-12
    相关资源
    最近更新 更多