Невозможно настроить кнопку при использовании Theme.MaterialComponents.DayNight.NoActionBar в качестве темы

Я хочу настроить кнопку, используя свой собственный файл для рисования следующим образом:

custom_button.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#48cae4" />
    <corners android:radius="10dp" />
</shape>

Но после смены фона кнопки (как показано ниже) эффекта нет

android:background="@drawable/custom_button" 

Но если я изменю <style name="Theme.A" parent="Theme.MaterialComponents.DayNight.NoActionBar"> на <style name="Theme.A" parent="Theme.AppCompat.DayNight.NoActionBar">, то на кнопку повлияет пользовательское рисование, но затем используемые мной компоненты материала преобразуются в обычные виджеты.


comment
Проверьте: stackoverflow.com/questions/63328270/   -  person Gabriele Mariotti    schedule 11.06.2021


Ответы (1)


Вы не можете использовать пользовательский рисунок для MaterialButton или с помощью темы материала. Вы можете установить только состояния сплошного цвета и установить их с помощью атрибута app:backgroundTint. Ссылка

Создайте файл tint.xml внутри каталога res/color/:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="?attr/colorPrimary" android:state_pressed="true"/>
    <item android:color="@color/colorSecondary" />
    ...
</selector>

Используйте его в своей кнопке или стиле кнопки:

app:backgroundTint="@color/tint"
person Ananta Raha    schedule 11.06.2021