为什么我不能将不同的textColor应用于标签?

时间:2011-11-25 15:34:25

标签: android tabs styles

我一直在制作自己的自定义标签,我想根据是否选中标签来更改标签的textColor。

我在“values”中创建了自己的样式,它只用于更改textColor:

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

...基于考虑“state_selected”的drawable:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:textColor="#000000"
        android:state_selected="true"/> 
    <item        
        android:textColor="#FFFFFF"/>
</selector>

然后我在我的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 ......一切正常,但颜色未定义为我想要的颜色。

有没有人有任何想法?

另外,我尝试在选择器中设置颜色,我根据state_selected选择图标。这会导致图标消失。

我只能假设我错过了一些东西,并且我认为这一切都错了,但似乎教程说这应该完成。

希望有人可以帮忙:)谢谢!

2 个答案:

答案 0 :(得分:1)

尝试执行以下操作

<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”等。

答案 1 :(得分:0)

有效!问题是我需要选择器是一个ColorSelector - 不使用textColors或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>