如何使用xml更改基于状态的文本样式?

时间:2010-10-24 20:58:01

标签: android coding-style

StateListDrawables和<selector>非常适合为视图的每个状态设置不同的drawable,但是有没有办法将视图应该用于每种状态的文本样式?

例如,如果您有一个带有黑色文本的白色按钮,并且单击时按钮颜色变为黑色,您希望文本颜色更改为白色。我可以想象我将如何使用代码执行此操作,但有没有办法使用xml类似于用于drawables的<selector>

1 个答案:

答案 0 :(得分:7)

那有点儿。我不相信有办法说,像state_focused一样使用Bold或italics或fontSize = 20.但是有办法改变颜色。因此,使用选择器机制,您可以创建ColorStateList

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

基本上,你使用选择器执行与绘制状态列表相同的操作,只是可以在单个项目中放置颜色。然后将XML保存在颜色文件夹中。

/res/values/color/my_stateful_color.xml

并将android:textColor设置为“@ color / my_stateful_color”