Android SwitchCompat样式

我在装有Android 5.1.1的新设备上测试了我的应用程序.在我的SettingsActivity中,我有一个开关.我已经阅读了一些帖子,并将其更改为android.support.v7.widget.SwitchCompat,但问题仍然是:在我的旧设备上,开关看起来非常漂亮.您可以为textOn和textOff设置两个文本,它非常适合.但是自从api 21或其他我在这里得到这个小混蛋以来:

Android SwitchCompat样式

看起来像 ****.如何为棒棒糖开关等所有设备重新设置样式?

编辑:
上面的问题得到了回答.
缺少一件事:如何更改开关上文本的颜色(不是左侧的标签!!!)

styles.xml

<style name="SwitchTextAppearance" parent="TextAppearance.AppCompat.Widget.Switch">
        <item name="android:textSize">12sp</item>
        <item name="android:textColor">#3F51B5</item>
    </style>

layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="8dp"
    android:paddingRight="8dp"
    android:paddingBottom="12dp"
    android:paddingTop="12dp">

    <android.support.v7.widget.SwitchCompat
        android:id="@+id/mySwitch"
        android:layout_width="match_parent"
        android:switchMinWidth="56dp"
        android:layout_height="wrap_content"
        android:switchTextAppearance="@style/SwitchTextAppearance"
        android:thumb="@drawable/thumb"
        android:track="@drawable/track"
        app:showText="true"
        android:textOn="ON"
        android:textOff="OFF"
        android:text="Toggle Switch"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:background="@android:color/transparent"
        android:button="@null"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"/>

</RelativeLayout>

解决方法:

使用SwitchCompat.setSwitchTextAppearance可以设置出现在开关本身内部的文本的样式.

添加类似这样的样式并使用setSwitchTextAppearance进行设置:

<style name="SwitchTextAppearance" parent="TextAppearance.AppCompat.Widget.Switch">
  <item name="android:textSize">12sp</item>
  <item name="android:textColor">#3F51B5</item>
</style>

而且,您应该能够自定义“ OFF”文本的大小,颜色等.

上一篇:使用c#条件更改按钮背景WPF鼠标悬停属性


下一篇:React Native 中的 Flex Box 的用法(水平布局、垂直布局、水平居中、垂直居中、居中布局)