android - Material 按钮颜色

android - Material button color

我正在设计我的应用程序并希望设置按钮背景颜色并使它们保持 material 风格。

我要

设置按钮背景颜色

我愿意

1.

我正在为按钮创建样式,设置 colorPrimary 并设置按钮样式和 colorButtonNormal。并且有效。

style name="AppTheme.Button" parent="Widget.AppCompat.Button.Colored">
    <item name="android:textColor">@android:color/white</item>
    <item name="colorButtonNormal">@color/colorAccent</item>
</style>

...

<item name="android:buttonStyle">@style/AppTheme.Button</item>
<item name="colorButtonNormal">@color/colorAccent</item>

2.

但是我想做一个不同颜色的按钮。我尝试使用 backgroundTint,但它不起作用。所以我创造风格:

 <style name="AppTheme.Button.Wildberries" parent="Widget.AppCompat.Button.Colored">
    <item name="colorButtonNormal">@color/wildberries</item>
</style>

它适用于 Android 4.x,但在 Android 5.x 按钮仍然是 colorAccent

3.

我为按钮创建了 style-v21:

 <style name="AppTheme.Button.Wildberries" parent="@android:style/Widget.Material.Button">
    <item name="android:backgroundTint">@color/wildberries</item>
</style>

在Android工作室工作:

也适用于 Android 4.x

但不适用于 5.x

4.

我也尝试使用 AppCompat.Button:

 <android.support.v7.widget.AppCompatButton
            xmlns:app="http://schemas.android.com/apk/res-auto"
            app:backgroundTint="@color/wildberries"
            
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Перейти на сайт"
            android:id="@+id/WildBtn"
            android:textSize="14dp"
            android:textColor="@android:color/white"
            android:theme="@style/AppTheme.Button.Wildberries"
            android:stateListAnimator="@null" />

一无所获:

在 Android 4.x 设备按钮仍然是紫色,在 5.x 仍然是绿色。

那么android4.x和hihger的按钮背景色怎么设置呢?

只需通过设置属性 "app:backgroundTint="@color/wildberries" 来使用 AppCompatButton,并确保您的 activity 扩展了 AppCompatActivity。 我只是在我的项目中使用它。它在 5.X 和 5.X.

之前都非常有效