如何在Android上为谷歌SwitchMaterial按钮设置样式?

12

我有一个像这样的材料切换按钮:

<com.google.android.material.switchmaterial.SwitchMaterial
                android:id="@+id/effectEnabled"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="3"
                style="@style/ButtonStyle2"
                android:checked="true"
                android:enabled="true" />

这是样式:

<style name="ButtonStyle2" parent="Base.Widget.AppCompat.Button">
        <!--<item name="android:fontFamily">sans-serif-light</item>-->
        <!--<item name="android:textStyle">bold</item>-->
        <item name="android:textColor">@color/colorPrimary</item>
        <item name="android:textSize">20sp</item>
        <item name="android:textAllCaps">false</item>
    </style>

使用这些样式,按钮会被打破,并带有灰色背景的正方形。

我该如何为SwitchMaterial按钮设置样式?我只想改变开关颜色。

1个回答

16

您可以使用app:thumbTint和/或app:trackTint来更改开关的颜色。 为了获得更好的结果,请在res/color中定义一个ColorStateList(例如:res/color/custom_thumb_selector.xml),以便根据是否选中来获得不同的颜色。 例如:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="@color/customChecked" />
    <item android:color="@color/customUnchecked" />
</selector>

然后按照你的风格进行设置:

<style name="ButtonStyle2" parent="Widget.MaterialComponents.CompoundButton.Switch">
    <item name="thumbTint">@color/custom_thumb_selector</item>
</style>

注意:您的自定义样式应继承自Widget.MaterialComponents.CompoundButton.Switch


1
你能否更新一下,指明我应该把选择器文件保存在哪里以及如何将其设置到开关中? - Guerlando OCs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接