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
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
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