android - android:buttonStyle 停止使用材料设计 1.2.0
问题描述
当 Material Design 库更新到 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>
解决方案
首先,MaterialButtonsapp: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>
...
...
等等。检查链接以获取更多信息,它一直在页面上。
推荐阅读
- python - 如何解决这个错误???引发 HTTPError(req.full_url, code, msg, hdrs, fp) HTTPError: Forbidden
- python - TfIdfVectorizer 中的特征选择
- excel - Excel 电源查询。其他行中每行值的不同公式
- c++ - 作业完成后进程和线程消耗大量内存
- assembly - 在 Art of Exploitation 示例中被 [ebp-0xc] 而不是 [ebp-4] 弄糊涂了
- python - 我需要帮助来计算 Penney 的博弈概率
- python - 如何替换 JSON 响应中的 None 值?
- reactjs - 用偏移量反应滚动
- javascript - 有没有办法编译 Electrino 应用程序?
- javascript - 使用 http-server 更改默认执行文件