Не могу установить цвет фона изменения кнопки state_enabled - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть поле для ввода номера телефона и маска для него. Я хочу, чтобы цвет кнопки был, например, черным, когда маска еще не полностью заполнена, и желтым, когда она заполнена.

Моя кнопка

<Button
    android:id="@+id/buttonNext"
    style="@style/AppTheme.YellowButton"
    android:text="Далее"/>

Стиль

<style name="AppTheme.YellowButton" parent="Widget.MaterialComponents.Button.TextButton">
    <item name="android:textSize">@dimen/text_size_20sp</item>
    <item name="android:textColor">@color/color_accent</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:textStyle">bold</item>
    <item name="android:backgroundTint">@color/yellow_mail</item>
    <item name="android:drawable">@color/selector_colored_button</item>
</style>

@ color / selector_colored_button

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

И код для него

MaskedTextChangedListener.installOn(
    editText = editPhone,
    primaryFormat = "[000] [000]-[00]-[00]",
    valueListener = object : MaskedTextChangedListener.ValueListener {
        override fun onTextChanged(
            maskFilled: Boolean,
            extractedValue: String,
            formattedValue: String
        ) {
            buttonNext.isEnabled = maskFilled
        }
    })

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

1 Ответ

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

Удалите эту строку:

<item name="android:drawable">@color/selector_colored_button</item>

и используйте:

<item name="android:backgroundTint">@color/selector_colored_button</item>

вы можете посмотреть мой ответ

...