如何在“材料设计”复选框中更改刻度线的颜色?

时间:2020-04-22 12:35:23

标签: android xml checkbox material-components-android

<com.google.android.material.checkbox.MaterialCheckBox
android:theme="@style/CheckBoxTheme"
/>

这是复选框

enter image description here

这是style

<style name="CheckBoxTheme" parent="Theme.AppCompat.Light">
    <item name="colorControlNormal">#FFC107</item>
    <item name="colorControlActivated">#9C27B0</item>
</style>

我想在其中保留一个蓝色的勾号,而不更改文本+框的背景

我尝试过

<com.google.android.material.checkbox.MaterialCheckBox
android:theme="@style/CheckBoxTheme"
android:background="@color/blue_banner_bg"
/>

但是我得到的是这个

enter image description here

我该怎么办?

1 个答案:

答案 0 :(得分:1)

您应该为CheckBox使用自定义图标。它应该是这样的selector可绘制对象

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="false"
          android:drawable="@drawable/button_normal" /> <!-- unchecked -->
    <item android:state_checked="true"
          android:drawable="@drawable/button_checked" /> <!-- checked -->
    <item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>

可绘制对象button_checkedbutton_normal应该由您定义。

然后像这样使用此可绘制对象

<com.google.android.material.checkbox.MaterialCheckBox
    android:theme="@style/CheckBoxTheme"
    android:button="@drawable/checkbox_selector"
/>

更多信息herehere

希望有帮助。