Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set the text style of a button in selectors?

Tags:

Button selectors allows to define a background for each state of the button, but how can the button's text style be defined for each state? My objective is to grey out a button when disabled. So I set a greyed out background to the disable state of the button, but the only way I found to also grey out the text is to change it's color dynamically when I disable the button...

Anybody can help?

Thanks

<style name="srp_button" parent="@android:style/Widget.Button">     <item name="android:background">@drawable/btn_default</item>     <item name="android:textColor">#ffffff</item> <!-- How to specify different color for different state? -->     <!-- more stuff --> </style> 

drawable/btn_default.xml

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android">      <item android:state_enabled="true"><shape>             <solid android:color="@color/pink" />             <corners android:radius="6dp" />         </shape></item>     <item><shape>             <solid android:color="#000000" />             <corners android:radius="6dp" />         </shape></item>  </selector> 
like image 842
jul Avatar asked Jan 05 '12 13:01

jul


1 Answers

Well!

You can define the Text color for all 4 state, similarly as you defined background for the Button. For example:

file name: /res/color/text_color.xml

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android">     <item android:state_enabled="false" android:color="#440000"/>     <item android:state_focused="true" android:color="#004400"/>     <item android:state_pressed="true" android:color="#000044"/>     <item android:color="#444"/>  </selector> 

Take this file into your Button Style like this:

<style name="srp_button" parent="@android:style/Widget.Button">     <item name="android:background">@drawable/btn_default</item>     <item name="android:textColor">@color/text_color</item> <!-- Here is specified text color --> </style> 
like image 125
Adil Soomro Avatar answered Oct 26 '22 03:10

Adil Soomro