【问题标题】:Changing Tab Text color when selecting the tab选择选项卡时更改选项卡文本颜色
【发布时间】:2016-06-13 18:56:29
【问题描述】:

我的标签文本是蓝色的,背景是白色的。我想在选择标签时显示蓝色背景和白色标签文本。

我使用选择器更改了背景。但是我尝试了多次文本颜色在选择时没有改变。请帮我解决这个问题。

styles.xml

<style name="MainTheme" parent="android:Theme.Holo.Light.DarkActionBar">   
    <item name="android:actionBarTabTextStyle">@style/tab_text_color</item>
</style>

<style name="actionbar_tab_style" parent="@android:style/Widget.Holo.Light.ActionBar.TabBar">
     <item name="android:background">@drawable/tab_background_select</item>
    <item name="android:textColor">@drawable/tab_text_select</item> 
</style>

tab_background_select.xml

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

tab_text_select.xml

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

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
   <item 
        android:state_selected="true"
        android:color="#FFFFFF"/>
    <item 
        android:state_selected="false"
        android:color="#0000FF"/>
      <!--   
        <item android:state_selected="true">
            <shape>
                <solid android:color="@color/white"/>
            </shape>
        </item>
        <item>
            <shape>
                <solid android:color="@color/light_blue"/>
            </shape>
        </item> -->

</selector>

【问题讨论】:

  • 我假设您使用的是TabLayout。你在哪里定义你的TabLayout?请显示 XML 代码,以便我们检查。
  • 我在代码中使用了操作栏标签
  • 我明白了,您是否知道这种导航方式一直是deprecated in API level 21?无论如何,您可以尝试类似:getActionBar().setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#YourFavoriteColorHere"))) - 也可以看看这个密切相关的讨论here
  • 背景工作正常我只想在选中时更改文本颜色

标签: android


【解决方案1】:

我找到了答案。我必须将tab_text_select.xml 放在 ti res/colors 文件夹中(如果您没有该文件夹,请创建它)。

然后

<style name="actionbar_tab_text_style" parent="@android:style/Widget.Holo.Light.ActionBar.TabText">
 <item name="android:textColor">@color/tab_background_select</item>

然后将上述样式应用于主题名称为android:actionBarTabTextStyle

【讨论】: