1

有一个 MaterialButton,样式:

<style name="InstallButtonStyle" parent="Widget.MaterialComponents.Button">
        <item name="materialThemeOverlay">@style/InstallButtonThemeOverlay</item>
    </style>

    <style name="InstallButtonThemeOverlay">
        <item name="colorPrimary">@color/btn_color</item>
    </style>

颜色是蓝色:

<color name="btn_color">#E6188FFF</color>

它一直在工作,但是当在不使用材料的应用程序中使用 aar 时,应用程序崩溃,

android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class com.google.android.material.button.MaterialButton

必须添加 android:theme="@style/Theme.MaterialComponents.DayNight"到按钮,应用程序不再崩溃,但颜色变为紫色

在此处输入图像描述

<com.google.android.material.button.MaterialButton
                    android:theme="@style/Theme.MaterialComponents.DayNight"
                    android:id="@id/btn"
                    style="@style/InstallButtonStyle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="20dp"
                    android:layout_marginBottom="10dp"
                    app:cornerRadius="20dp"
                    android:layout_gravity="bottom|right"
                    android:text="Install Now"
                    android:textAllCaps="false"/>

如何保持样式中定义的颜色?

4

1 回答 1

2

添加"backgroundTint"使它工作,不确定是否有更好的方法:

<style name="AdInstallButtonStyle" parent="Widget.MaterialComponents.Button">
        <item name="materialThemeOverlay">@style/InstallButtonThemeOverlay</item>
        <item name="backgroundTint">@color/btn_color</item>
    </style>
于 2020-03-06T00:04:58.040 回答