Android 为什么我不能对选项卡应用不同的textColor?

Android 为什么我不能对选项卡应用不同的textColor?,android,tabs,styles,Android,Tabs,Styles,我一直在制作自己的自定义选项卡,我想根据是否选中它来更改选项卡的文本颜色 我在“值”中创建了自己的样式,该样式仅用于更改文本颜色: <style name="TabTextStyle" parent="@android:attr/tabWidgetStyle"> <item name="android:textColor">@drawable/tab_text_color</item> </style> @可绘制/制表符\文本\颜色

我一直在制作自己的自定义选项卡,我想根据是否选中它来更改选项卡的文本颜色

我在“值”中创建了自己的样式,该样式仅用于更改文本颜色:

<style name="TabTextStyle" parent="@android:attr/tabWidgetStyle">
    <item name="android:textColor">@drawable/tab_text_color</item>
</style>

@可绘制/制表符\文本\颜色
。。。基于考虑“状态_已选择”的绘图:


然后,我在布局中的TabIndicator中设置了TextView的样式:

<TextView android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true"
    style="@style/TabTextStyle"/> 

这会导致我的应用程序崩溃:\

  • 如果我将TabTextStyle设置为固定颜色,则一切正常
  • 如果我将样式设置为?@android:attr/tabWidgetStyle。。。一切正常,除了颜色不是我想要的定义
有人有什么想法吗?

此外,我还尝试在选择器内设置颜色,根据状态选择图标。这会导致图标消失

我只能假设我错过了一些东西,而且我在这件事上完全错了,但这似乎是教程所说的应该做的


希望有人能帮忙:)谢谢

尝试执行以下操作

<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <!-- When selected, use grey -->
 <item android:drawable="@color/black"
      android:state_selected="true" />
 <!-- When not selected, use white-->
 <item android:drawable="@color/white" />
</selector>


定义您自己的颜色资源或使用android提供的资源-“@android:color/black”等。

它可以工作!问题是我需要一个颜色选择器,而不是使用TextColor或drawables

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

Argh!现在看起来很明显(我想这个项目可能必须是可绘制的)-我希望我有远程访问来尝试这个。我会在周一第一件事就调查此事,并让你知道。谢谢
<?xml version="1.0" encoding="utf-8"?>
<selector     xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_selected="true"
        android:color="@color/tabTextSelected"/> 
    <item        
        android:color="@color/tabTextUnselected"/>  
</selector>