android:buttonStyle 停止了 material 设计 1.2.0 的工作
android:buttonStyle stopped working on material design 1.2.0
当 material 设计库更新到 1.2.1(也可能在 1.2.0 中)时,在应用主题上默认应用按钮样式停止工作。
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="android:buttonStyle">@style/AppTheme.Button.GrayGreen</item>
</style>
<style name="AppTheme.Button" parent="Widget.MaterialComponents.Button">
...
</style>
<style name="AppTheme.Button.GrayGreen">
<item name="android:backgroundTint">@color/green</item>
<item name="android:textColor">@color/white</item>
</style>
也尝试过:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="buttonStyle">@style/AppTheme.Button.GrayGreen</item>
</style>
首先,MaterialButtons 使用 app:backgroundTint
作为背景颜色,而不是 android
属性。此外,根据我在 material.io 上看到的文档,当在 style.xml
或 theme.xml
中使用样式时,您需要为每种类型的 MaterialButton 组件设置样式。像这样:
<style name="Theme.App" parent="Theme.MaterialComponents.*">
...
<item name="borderlessButtonStyle">@style/Widget.App.Button.TextButton</item>
<item name="materialButtonOutlinedStyle">@style/Widget.App.Button.OutlinedButton</item>
<item name="materialButtonStyle">@style/Widget.App.Button</item>
</style>
<style name="Widget.App.Button.TextButton" parent="Widget.MaterialComponents.Button.TextButton">
<item name="materialThemeOverlay">@style/ThemeOverlay.App.Button.TextButton</item>
<item name="android:textAppearance">@style/TextAppearance.App.Button</item>
<item name="shapeAppearance">@style/ShapeAppearance.App.SmallComponent</item>
</style>
...
...
等等。查看 link 了解更多信息,它一直在页面下方。
当 material 设计库更新到 1.2.1(也可能在 1.2.0 中)时,在应用主题上默认应用按钮样式停止工作。
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="android:buttonStyle">@style/AppTheme.Button.GrayGreen</item>
</style>
<style name="AppTheme.Button" parent="Widget.MaterialComponents.Button">
...
</style>
<style name="AppTheme.Button.GrayGreen">
<item name="android:backgroundTint">@color/green</item>
<item name="android:textColor">@color/white</item>
</style>
也尝试过:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="buttonStyle">@style/AppTheme.Button.GrayGreen</item>
</style>
首先,MaterialButtons 使用 app:backgroundTint
作为背景颜色,而不是 android
属性。此外,根据我在 material.io 上看到的文档,当在 style.xml
或 theme.xml
中使用样式时,您需要为每种类型的 MaterialButton 组件设置样式。像这样:
<style name="Theme.App" parent="Theme.MaterialComponents.*">
...
<item name="borderlessButtonStyle">@style/Widget.App.Button.TextButton</item>
<item name="materialButtonOutlinedStyle">@style/Widget.App.Button.OutlinedButton</item>
<item name="materialButtonStyle">@style/Widget.App.Button</item>
</style>
<style name="Widget.App.Button.TextButton" parent="Widget.MaterialComponents.Button.TextButton">
<item name="materialThemeOverlay">@style/ThemeOverlay.App.Button.TextButton</item>
<item name="android:textAppearance">@style/TextAppearance.App.Button</item>
<item name="shapeAppearance">@style/ShapeAppearance.App.SmallComponent</item>
</style>
...
...
等等。查看 link 了解更多信息,它一直在页面下方。