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



我正在尝试将Material Button背景颜色定义为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.android.material.button.MaterialButton
android:theme="@style/SimpleButton" />

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

有没有什么方法可以嵌套样式,这样我就不需要在所有按钮中明确提及样式了?

是的,有一种方法可以做到这一点。

首先,为按钮创建一个主题,并使其继承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>

这应该可以做到:(

相关内容

  • 没有找到相关文章

最新更新