Невозможно установить цвет фона кнопки, используя библиотеку компонентов материалов. - PullRequest
1 голос
/ 22 апреля 2020

Мой код:

<Button
     android:id="@+id/button_one"
     style="@style/ButtonStyle"
     android:text="@string/button_one" />
<style name="ButtonStyle">
     <item name="android:textSize">32sp</item>
     <item name="android:textColor">@drawable/background_button_text_color</item>
     <item name="android:background">@drawable/background_button</item
</style>

кнопка background_ xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white" android:state_pressed="true" />
    <item android:drawable="@android:color/transparent" android:state_pressed="false" />
</selector>

background_button_text_color. xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@android:color/black" android:state_pressed="true" />
    <item android:color="@android:color/white" android:state_pressed="false" />
</selector>

Я получаю черный фон вместо белого при нажатии кнопки. Не уверен, что я делаю не так. Любая помощь?
Я на 1.2.0-alpha06 и использую Theme.MaterialComponents.DayNight.NoActionBar.

1 Ответ

1 голос
/ 22 апреля 2020

Ваш стиль:

<style name="ButtonStyle" parent="Widget.MaterialComponents.Button.TextButton">
    <item name="android:textSize">32sp</item>
    <item name="android:textColor">@color/text_color</item>
    <item name="android:backgroundTint">@color/background_button</item>
    <item name="rippleColor">@android:color/transparent</item>
    <item name="cornerRadius">0dp</item>
</style>

Ваши селекторы должны быть в цветовой папке

background_button:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:color="@android:color/white" android:state_pressed="true" />
   <item android:color="@android:color/transparent" android:state_pressed="false"/>
</selector>

text_color:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:color="@android:color/black" android:state_pressed="true" />
   <item android:color="@android:color/white" android:state_pressed="false" />
</selector>

И добавьте к своей кнопке:

android:layout_width="wrap_content"
android:layout_height="wrap_content"

enter image description here enter image description here

Цвета мои

...