Обновление
Эта проблема была исправлена в com.android.support
v. 28.0.0
, но если вы не хотите обновляться, вы можете посмотреть на решение ниже.
Так как мне не удалось решить мою проблему, я создал свой собственный селектор для флажков.
1.В res/drawable/cbx_selector
:
<?xml version="1.0" encoding="utf-8"?> <!--Used for cbx check problem-->
<!--layer-list needed for paddings-->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!--Initial state-->
<item android:drawable="@drawable/ic_baseline_check_box_outline_blank_24px"
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp"/>
<!--Paddings to look similar to default Android checkboxes-->
<item
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp">
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:enterFadeDuration="@android:integer/config_shortAnimTime"
android:exitFadeDuration="@android:integer/config_shortAnimTime"> <!--Used for animation-->
<item android:state_checked="true" android:drawable="@drawable/ic_baseline_check_box_24px"/>
<item android:state_checked="false" android:drawable="@drawable/ic_baseline_check_box_outline_blank_24px"/>
</selector>
</item>
</layer-list>
2.Мои чекбоксы:
-> состояние проверено: res/drawable/ic_baseline_check_box_24px
<vector android:autoMirrored="true" android:height="24dp"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"
android:tintMode="multiply"
android:tint="@color/cbx_color_checked_selector">
<!--fillColor MUST be set to white-->
<path android:fillColor="@android:color/white" android:pathData="M19,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.11,0 2,-0.9 2,-2L21,5c0,-1.1 -0.89,-2 -2,-2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z"/>
</vector>
-> состояние не проверено: res/drawable/ic_baseline_check_box_outline_blank_24px
<vector android:autoMirrored="true" android:height="24dp"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"
android:tintMode="multiply"
android:tint="@color/cbx_color_checked_selector">
<!--fillColor MUST be set to white-->
<path android:fillColor="@android:color/white" android:pathData="M19,5v14H5V5h14m0,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V5c0,-1.1 -0.9,-2 -2,-2z"/>
</vector>
3.В res/color/cbx_color_checked_selector
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/colorAccent" android:state_checked="true" android:state_enabled="true" />
<item android:color="@color/cbxBorderColorUnchecked" android:state_checked="false" android:state_enabled="true" />
<item android:color="@color/colorAccentDisabled" android:state_checked="true" android:state_enabled="false" />
<item android:color="@color/cbxBorderColorUncheckedDisabled" android:state_checked="false" android:state_enabled="false" />
</selector>
Дополнительная информация: