Я хочу установить высоту / тень только для пользовательской кнопки-флажка, а не для ее текста.Это то, что я сейчас делаю
<CheckBox
android:id="@+id/custom_checkbox"
style="@style/CustomCheckBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/standard_page_margin"
android:elevation="20dp"
android:outlineProvider="bounds"
android:text="This is an example." />
, а стиль -
<style name="CustomCheckBox" parent="Base.Widget.AppCompat.CompoundButton.CheckBox">
<item name="android:button"> @drawable/custom_selector_check_box_button</item>
<item name="android:textAppearance">@style/CustomTextStyleBody</item>
<item name="android:textColorLink">@color/custom_bright_sky_blue</item>
<item name="android:textColorHighlight">@android:color/transparent</item>
<item name="android:paddingStart">16dp</item>
</style>
, где селектор -
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true">
<layer-list>
<item>
<shape android:shape="rectangle">
<size android:width="40dp" android:height="40dp" />
<solid android:color="@color/slate_gray" />
</shape>
</item>
<item android:gravity="center" android:drawable="@drawable/custom_tick" />
</layer-list>
</item>
<item android:state_checked="false">
<shape android:shape="rectangle">
<size android:width="40dp" android:height="40dp" />
<solid android:color="@color/slate_gray" />
</shape>
</item>
</selector>
Но это ставит тень на весь флажоквместе с текстом.Кроме того, я не могу изменить значение высоты в селекторе
РЕДАКТИРОВАТЬ:
Мне удалось добавить отметку с помощью stateListAnimator
на флажок, где stateListAnimator
следующим образом
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true">
<set>
<objectAnimator
android:propertyName="elevation"
android:valueTo="10dp"
android:valueType="floatType"/>
</set>
</item>
<item android:state_checked="false">
<set>
<objectAnimator
android:propertyName="elevation"
android:valueTo="20dp"
android:valueType="floatType"/>
</set>
</item>
</selector>
Но тень по-прежнему на весь флажок.Мне нужна тень только на кнопке флажка