我一直在制作自己的自定义标签,我想根据是否选中标签来更改标签的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"/>
这会导致我的应用崩溃:\
有没有人有任何想法?
另外,我尝试在选择器中设置颜色,我根据state_selected选择图标。这会导致图标消失。
我只能假设我错过了一些东西,并且我认为这一切都错了,但似乎教程说这应该完成。
希望有人可以帮忙:)谢谢!
答案 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>