2010-09-30 73 views
28

当我的ListViewItem突出显示时,我希望文字变成白色。我怎样才能定义这个?如何为TextView定义ColorStateList?

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:color="@color/testcolor1"/> 
    <item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" /> 
    <item android:state_enabled="false" android:color="@color/testcolor3" /> 
    <item android:color="@color/testcolor5"/> 
</selector> 
+0

什么是代码片段? – 2010-09-30 06:12:50

+0

我不知道我明白你的意思吗? – 2010-09-30 06:17:23

+0

你为什么发布代码?它显示了什么? (你如何使用drawable?) – 2010-09-30 06:24:00

回答

62

创建文件RES /绘制/ text_color.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:state_pressed="false" android:color="#ffffff" /> 
    <item android:state_focused="true" android:state_pressed="true" android:color="#ffffff" /> 
    <item android:state_focused="false" android:state_pressed="true" android:color="#ffffff" /> 
    <item android:color="#000000" /> 
</selector> 

然后使用从XML @drawable/text_color(或R.drawable.text_color从代码中)作为文本颜色列表视图中的项目。

+0

谢谢!你能告诉我一个@ drawable/text_color可能是什么样子的例子吗? – 2010-09-30 06:43:21

+1

有点像在TextView上的android:textColor =“@ drawable/text_color”。 – 2010-09-30 07:11:13

+41

应该在res/color – njzk2 2011-06-17 15:45:06

0

除了上面提到的其他人之外,我想强调一点,取自以下网址。

https://developer.android.com/reference/android/content/res/ColorStateList.html

注:国家规范的名单将针对它们出现的XML文件中的顺序进行匹配。出于这个原因,更具体的项目应该放在文件的早期位置。没有状态规范的项目被认为与任何一组状态匹配,并且通常作为用作缺省的最终项目是有用的。

重要的是,您在选择器标签底部有更广泛的条件。希望这可以帮助!

相关问题