按钮样式背景颜色不起作用-仅限XML



我试图根据按钮的状态是否启用,从样式xml设置背景颜色。

按钮XML:

<androidx.appcompat.widget.AppCompatButton
android:id="@+id/loginButton"
style="@style/SuccessButton2"
android:layout_width="200dp"
android:layout_height="40dp"
android:text="Iniciar sesión"
android:gravity="center"
android:enabled="true"
/>

样式成功按钮2:

<style name="SuccessButton2" parent="TextAppearance.MaterialComponents.Button">
<item name="android:textColor">@color/button_text_color</item>
<item name="android:textSize">16sp</item>
<item name="android:background">@color/button_background_color</item>
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">40dp</item>
<item name="android:textAllCaps">false</item>
<item name="fontFamily">@font/myriad_pro_regular</item>
</style>

XML按钮_背景_颜色:

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

我有同样的文本和它的工作良好:

button_text_color:

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

背景项不起作用,它只显示具有透明背景的按钮,无论是否启用。

您可以尝试使用android:backgroundTint

着色以应用于背景。

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

最新更新