通过xml更改切换按钮文本颜色

Posted

技术标签:

【中文标题】通过xml更改切换按钮文本颜色【英文标题】:change toggle button text color through xml 【发布时间】:2014-09-03 03:31:40 【问题描述】:

您好,我正在尝试通过 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="#ffffff" />
    <item android:state_checked="false" android:color="#000000" />
</selector>

但只有背景在改变。

注意:我不想在代码中这样做,因为有 21 个切换按钮,并且为每个按钮设置侦听器并不好。

【问题讨论】:

http://***.com/questions/14065200/android-toggle-text-color-of-togglebutton 我正在这样做 &lt;ToggleButton android:id="@+id/toggleButton" style="@style/toggleButton"/&gt; ` schemas.android.com/apk/res/android"> `&lt;style name="toggleButton" parent="@android:Theme.Black"&gt; &lt;item name="android:textColor"&gt;@color/color&lt;/item&gt; &lt;/style&gt;这有什么问题?跨度> @yasshy 不要创建Style,而是尝试将Drawable 设置为您的Toggle Button,例如android:textColor="@drawable/text_color_selector" 而不是 style="@style/toggleButton" 尝试使用 android:background="@style/toggleButton" 显示通货膨胀错误。 【参考方案1】:

您不应将小部件样式的父级设置为主题。相反,您需要将其设置为您要修改的默认小部件样式(例如 @android:style/Widget.Holo.Button.Toggle)。

但是,在您的情况下,您不需要使用样式:

res/color/toggle_text.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="#ffffff" />
    <item android:color="#000000" />
</selector>

res/layout/your_layout.xml:

...
<ToggleButton
    android:id="@+id/toggleButton"
    ...
    android:textColor="@color/toggle_text" />

【讨论】:

谢谢,我没注意到android:textColor 是必需的属性。

以上是关于通过xml更改切换按钮文本颜色的主要内容,如果未能解决你的问题,请参考以下文章

按下时更改按钮文本颜色

Android:更改按钮文本和背景颜色

如何使用 onclick 按钮更改悬停颜色

如何通过单击按钮更改文本颜色?

如何在不更改整个文本视图颜色的情况下更改文本颜色

通过触摸按钮 Swift 3 更改 UIButton 文本标签颜色