无法设置状态变化按钮的背景颜色_启用。

问题描述 投票:0回答:1

我有一个输入电话号码的字段,并为其设置了掩码。我希望按钮的颜色是,例如,当掩码还没有被完全填满时,按钮的颜色是黑色,而当它被填满时,按钮的颜色是黄色。

我的按钮

<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>

@colorselector_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

android material-design android-styles material-components-android material-components
1个回答
0
投票

删除这一行。

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

并使用:

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

你可以看我的 回答

© www.soinside.com 2019 - 2024. All rights reserved.