Android: переключение цвета текста ToggleButton
чтобы создать пользовательский ToggleButton, я определил новый стиль в /res/values/styles.xml
:
<style name="myToggleButton">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#000000</item>
<item name="android:background">@drawable/my_toggle_button</item>
</style>
и затем я использую селектор, чтобы указать, как выглядят состояния кнопки в /res/drawable/my_toggle_button.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true">
<shape>
[...]
</shape>
</item>
<item android:state_checked="false"
<shape>
[...]
</shape>
</item>
</selector>
как изменить эту настройку для переключения цвета текста кнопки при изменении состояния?
1 ответов
создайте аналогичный список состояний для цветов текста, которые вы хотели бы, и поместите его в res/color
, например,
res/color/toggle_color.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="#070" />
<!-- Default State -->
<item android:color="#A00" />
</selector>
затем установите этот ресурс в качестве цвета текста кнопки:
<item name="android:textColor">@color/toggle_color</item>
P.S., рекомендуется, чтобы последний элемент в селекторе не имел никаких флагов состояния (т. е. состояние по умолчанию), а не определял его с обратным из вышеуказанных состояний.