Селекторы кнопок позволяют определять фон для каждого состояния кнопки, но как можно определить стиль текста кнопки для каждого состояния? Моя цель - затемнить кнопку, когда она отключена. Поэтому я установил серый фон в состояние отключения кнопки, но единственный способ, который я нашел, также сделать текст серым, - это динамически изменять его цвет, когда я отключаю кнопку ...
Кто-нибудь может помочь?
Спасибо
<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>
Хорошо!
Вы можете определить цвет текста для всех 4 состояний, так же, как вы определили фон для Button
. Например:
имя файла: /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>
Возьмите этот файл в свой стиль Button
, например:
<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>