问题
I'm trying to change a TextView style based on its state. My styles.xml contains:
<style name="text_normal_ops">
<item name="android:gravity">left</item>
<item name="android:textColor">@color/text_usual_color</item>
<item name="android:textStyle">bold</item>
</style>
<style name="text_normal_ops_pressed">
<item name="android:gravity">left</item>
<item name="android:textColor">@color/text_pressed</item>
<item name="android:textStyle">bold</item>
</style>
My selector (text_ops.xml
)is defined as:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" style="@style/text_normal_ops_pressed" />
<item android:state_focused="true" style="@style/text_normal_ops_pressed" />
<item android:state_selected="true" style="@style/text_normal_ops_pressed" />
<item style="@style/text_normal_ops"/>
</selector>
But when I apply this to my textview (style="@drawable/text_ops"
) it does not work.
Any tips?
Thanks
回答1:
In android as per my knowledge there is only two state-list 1. Color State List Resource 2. StateListDrawable. If you are using style in it then please recheck the doc
Please check below link for more info
- http://developer.android.com/guide/topics/resources/color-list-resource.html
- http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList
回答2:
The problem is the line style="@drawable/text_ops"
this should be style="@style/text_ops".
I haven't tried using a selector for styles but it would be cool if it works that way.
来源:https://stackoverflow.com/questions/8064707/textview-state-pressed-state-focused-state-selected-style-change