Android Lollipop Switch:textOn与开关图标颜色相同,不显示

时间:2016-12-08 02:23:53

标签: android android-5.0-lollipop

我在Android Lollipop 5.0 Android Studio的选项菜单中使用了一个开关。 Switch On看起来像这样: Switch On Switch Off看起来像这样: Switch Off     - 你看不到“O” - 它可能是白色关闭开关上的白色文字。如何更改文本的颜色(或至少更改开关颜色)?   这是我的xml:

<Switch  android:id="@+id/switchRackOverflowToggle"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_centerHorizontal="true"
 android:layout_centerVertical="true"
 android:textOn="O"
 android:textOff="R"
 android:showText="true"
 android:checked="false"/>

谢谢!

2 个答案:

答案 0 :(得分:0)

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="@android:color/white"/>
    <item android:state_checked="false" android:color="@android:color/black"/>
</selector>

switchButton.setTextColor(ContextCompat.getColorStateList(context, R.color.button_text_color));

答案 1 :(得分:0)

在进一步观察后,我找到了一种简单的方法来改变开关本身的颜色:http://www.materialdoc.com/switch/

<style name="MySwitch" parent="Theme.AppCompat.Light">  
<!-- active thumb & track color (30% transparency) -->
<item name="colorControlActivated">@color/indigo</item>

<!-- inactive thumb color -->
<item name="colorSwitchThumbNormal">@color/pink</item>

<!-- inactive track color (30% transparency) -->
<item name="android:colorForeground">@color/grey</item>
</style>  

然后为开关使用:

 android:theme="@style/MySwitch"

现在我可以更清楚地看到我的文字叠加。