25

为了创建一个自定义的 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>

如何修改此设置以在状态更改时切换按钮的文本颜色?

4

1 回答 1

81

为您想要的文本颜色创建一个类似的状态列表,并将其放入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>

PS,最好让选择器中的最后一项没有附加任何状态标志(即默认状态),而不是使用与上述状态相反的状态来定义它。

于 2012-12-29T04:20:42.167 回答