Android 按钮背景的Colorstatelist不工作

Android 按钮背景的Colorstatelist不工作,android,button,colors,Android,Button,Colors,参考: 我遵循了上面链接中的流行答案 我有以下可提取的信息: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:drawable="@color/KeyActionPrimary"/> <!-- enabled

参考:

我遵循了上面链接中的流行答案

我有以下可提取的信息:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="true"
        android:drawable="@color/KeyActionPrimary"/> <!-- enabled -->
    <item android:state_enabled="false"
        android:drawable="@color/KeyActionButtonDeactivated"/> <!-- disabled -->
    <item android:state_pressed="true"
        android:drawable="@color/KeyActionPrimary"/> <!-- pressed -->
    <item android:state_focused="true"
        android:drawable="@color/KeyActionPrimary"/> <!-- focused -->
    <item android:drawable="@color/KeyActionPrimary"/> <!-- default -->
</selector>
e、 g



这不需要其他样式。我可以保留我的材料设计主题,而不必将按钮样式设置为apt compat样式。我只在布局xml中为按钮使用上述属性,我希望这些样式

,因为您的
color\u状态
中的第一个条件是“android:state\u enabled=“true”,这通常都是这样,从而产生相同的颜色。去掉它,注意颜色的变化

有关更多信息,请参阅,并尝试使用
color
文件资源,而不是如文档所述的
drawable

ColorStateList是从应用程序资源目录的“color”子目录中定义的XML资源文件创建的

编辑:

如回答中所述,将colorstate作为样式应用于
按钮
标记应该可以解决这个问题

创建新样式

    <style name="AppTheme.CustomButtonStyle" parent="@style/Widget.AppCompat.Button.Colored">
        <item name="android:backgroundTint">@color/state_controlled_key_action_button</item>
    </style>

@颜色/状态\受控\按键\动作\按钮
活动

    <Button
        android:id="@+id/your_button_id"
        style="@style/AppTheme.CustomButtonStyle"/>



有时我会禁用按钮。它没有应用我的问题中所述的启用颜色,我说它仍然应用主题颜色,因此听起来不正确@rcs你说的
是什么意思有时候我禁用按钮,它没有应用启用颜色,因为,如果按钮被禁用,则会注册
,这正是我在设备上看到的颜色。设置为除禁用之外的所有状态的颜色都是橙色。设置为背景的按钮仍然是白色的,并且它当前处于启用状态,所以应该是橙色而不是白色的。我刚刚尝试过这个。第一次按下时为红色,启用时为橙色,禁用时为绿色。我的按钮在任何情况下都是白色的。选择器xmlns:android=“”>
primarycolor
占优势,请检查此项以了解如何处理它
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <solid android:color="@color/primary_button_color" />
    <stroke android:width="@dimen/btn_stroke" android:color="@color/primary_button_stroke_color"/>
    <corners android:radius="@dimen/btn_radius"/>
</shape>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="true"
        android:color="@color/Primary"/> <!-- pressed -->
    <item android:state_enabled="false"
        android:color="@color/PrimaryButtonDeactivated"/> <!-- pressed -->
    <item android:state_pressed="true"
        android:color="@color/Primary"/> <!-- pressed -->
    <item android:state_focused="true"
        android:color="@color/Primary"/> <!-- focused -->
    <item android:color="@color/Primary"/> <!-- default -->
</selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:color="@color/KeyActionColorOnPrimary"/>
    <item android:state_enabled="true"
        android:color="@color/KeyActionPrimary"/>
    <item android:state_enabled="false"
        android:color="@color/lime"/>
    <item android:state_focused="true"
        android:color="@color/KeyActionPrimary"/>
    <item android:color="@color/KeyActionPrimary"/>
</selector>
android:backgroundTint="@color/key_action_button_color" // for button color
android:textColor="@color/key_action_button_text_color" // for text color
<Button
        android:id="@+id/buttonSTART"
        android:layout_width="@dimen/btn_width"
        android:layout_height="@dimen/btn_height"
        android:layout_marginStart="4dp"
        android:layout_marginEnd="4dp"
        android:layout_marginBottom="16dp"
        android:backgroundTint="@color/key_action_button_color"
        android:padding="@dimen/btn_padding"
        android:text="@string/btn_start"
        android:textColor="@color/key_action_button_text_color"
        app:autoSizeTextType="uniform"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/btnSCORES"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent" />
    <style name="AppTheme.CustomButtonStyle" parent="@style/Widget.AppCompat.Button.Colored">
        <item name="android:backgroundTint">@color/state_controlled_key_action_button</item>
    </style>
    <Button
        android:id="@+id/your_button_id"
        style="@style/AppTheme.CustomButtonStyle"/>