tags:

views:

14

answers:

1

StateListDrawables and <selector> are great for setting different drawables for each state of a view, but is there a way to tie in what text style that view should use for each of those states?

For example, if you had a button that was white with black text, and when clicked, the button color became black, you would want your text color to change to white. I can imagine how I would do this with code, but is there a way to do it with xml similar to the <selector> used for drawables?

A: 

Well there sort of is. I don't believe there is a way to say, something like state_focused use Bold or italics or fontSize = 20. But there are ways to change the color. So using the selector mechanic you can create a ColorStateList

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

Basically you do the same thing as you would a state list drawable using a selector except that you can place a color inside the individual items. Then you save your XML inside the color folder.

/res/values/color/my_stateful_color.xml

and set the android:textColor to "@color/my_stateful_color"

Greg