有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Android Studio项目的应用程序主题中嵌套按钮样式元素

我试图在我的Android应用程序中将材质按钮背景颜色定义为一个主题,以便所有按钮都能从应用程序主题中获得样式。我在Android应用程序中定义了以下样式

我的主题/样式xml文件中有以下内容

<style name="Theme.SimpleTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
    <!-- Some theming -->
</style>

<style name="SimpleButton" parent="Widget.MaterialComponents.Button">
    <item name="colorPrimary">@color/blue_grey_800</item>
    <item name="colorOnPrimary">@color/white</item>
</style>

然后在布局文件中,我有:

<com.google.安卓.material.button.MaterialButton
    安卓:theme="@style/SimpleButton" />

现在,这可以使一个特定的按钮具有我想要的背景颜色,但是我必须在所有布局文件中的所有材质按钮元素中设置样式属性

是否有任何方法可以嵌套样式,以便不需要在所有按钮中明确提及样式


共 (1) 个答案

  1. # 1 楼答案

    是的,有办法做到这一点

    首先,为按钮创建一个主题,并使其继承AppCompat按钮(尽管它是一个材质按钮)。 例如:

    <style name="bTheme" parent="Widget.AppCompat.Button">
            <item name="android:backgroundTint">@color/black</item>
            <item name="android:textColor">@color/white</item>
    </style>
    

    然后,在主应用程序的主题上添加以下行:

    <item name="materialButtonStyle"> @style/bTheme</item>
    

    这应该可以做到:)