The MaterialCheckBox
provided by the Material Components library uses the checkboxStyle
attribute defined in the theme.
Just override this attribute to define globally the style in your app:
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
<!-- .... -->
<item name="checkboxStyle">@style/MyCheckBox</item>
</style>
If you want to customize the color you can use the materialThemeOverlay
attribute in the style:
<style name="MyCheckBox" parent="@style/Widget.MaterialComponents.CompoundButton.CheckBox">
<item name="materialThemeOverlay">@style/ThemeOverlay.CheckBox</item>
</style>
with:
<style name="ThemeOverlay.CheckBox" parent="">
<item name="colorSecondary">@color/....</item> <!-- checked -->
<item name="colorOnSurface">@color/.....</item> <!-- unchecked -->
</style>
You can also apply the style to the single checkbox using:
<com.google.android.material.checkbox.MaterialCheckBox
style="@style/MyCheckBox"
..>
As alternative you can also use the android:theme
in the layout, but it doesn't work globally.
<com.google.android.material.checkbox.MaterialCheckBox
...
android:theme="@style/ThemeOverlay.CheckBox"/>
Just a note.
The colorTint selector is defined programmatically in the MaterialCheckBox
code. You can also define a custom colorTint selector adding the buttonTint
attribute in your custom style. In this case the colors defined above are ignored.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…