我使用的是android.support.v7.widget.SwitchCompat,我遇到了以下问题
我的代码
Styles.xml
注意我尝试使用NO parent和Theme.AppCompat.Light.NoActionBar
<style name="ToggleSwitchStyle" parent="Theme.AppCompat">
<item name="colorControlActivated">@color/emerald</item>
</style>
我的SwitchCompat在XML布局中定义
<android.support.v7.widget.SwitchCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:padding="5dp"
android:textOff="@string/no"
android:textOn="@string/yes"
app:showText="true"
android:switchPadding="5dp"
app:switchPadding="10dp"
app:theme="@style/ToggleSwitchStyle"
android:theme="@style/ToggleSwitchStyle"
android:textAllCaps="true"
app:thumbTextPadding="5dp"
>
所以在上面的文字中,AllCaps不会使拇指上的文字全部大写。
切换填充无效
使用Res-Auto或Android命名空间的主题对活动颜色没有影响。
但是,我可以通过更改材质主题的颜色重音来更改活动颜色
<!-- Application theme. -->
<style name="MaterialDesign" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/yellow</item>
</style>
答案 0 :(得分:1)
确保您的Styles.xml位于values-v21文件夹中。我在switchcompat中遇到了类似的问题,无法改变颜色。
这对我有用。将styles.xml保存在values-v21文件夹和ColorAccent中以更改开关的颜色。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="colortoggle">
<item name="colorAccent">@color/continue_button</item>
</style>
</resources>
对于拇指问题: textAppearance和相关的setTypeface()方法控制标签文本的字体和样式,而switchTextAppearance和相关的seSwitchTypeface()方法控制着拇指的字体。