如何更改主题中的材质按钮禁用状态背景颜色?

谢尔盖·延迪亚罗夫(Sergei Yendiyarov)

我在android项目中使用Material设计组件。

我的问题是我无法更改材料按钮的禁用背景颜色(https://material.io/develop/android/components/material-button/)。

我想更改主题中的“禁用”颜色,但是我不知道该怎么做。

我尝试查看Widget.MaterialComponents.Button样式,发现它具有"backgroundTint"属性:

<item name="backgroundTint">@color/mtrl_btn_bg_color_selector</item>

但是它没有禁用状态样式,请参见下文:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:color="?attr/colorPrimary" android:state_enabled="true"/>
  <item android:alpha="0.12" android:color="?attr/colorOnSurface"/>
</selector>

我总是可以自己添加它,但是DISABLED按钮的最初呈灰色的颜色从何而来?

在我的主题中全局更改此颜色的最佳方法是什么?

PS我正在使用Theme.MaterialComponents.NoActionBar主题。

谢谢!

加布里埃尔·马里奥蒂(Gabriele Mariotti)

禁用状态使用的颜色是选择器中的最后一行:

<item android:alpha="0.12" android:color="?attr/colorOnSurface"/>

在此处输入图片说明 在此处输入图片说明

全局更改只需materialButtonStyle在应用程序主题中使用属性即可。

<style name="AppTheme" parent="Theme.MaterialComponents.*">
  <item name="materialButtonStyle">@style/My.Button</item>
</style>

然后,您可以根据需要自定义样式。

<style name="My.Button" parent="@style/Widget.MaterialComponents.Button">
 <item name="backgroundTint">@color/my_color_selector</item>
 ...
</style>

或使用新materialThemeOverlay属性来覆盖颜色(它需要库的版本1.1.0):

<style name="My.Button" parent="@style/Widget.MaterialComponents.Button">
 <item name="materialThemeOverlay">@style/MyButtonThemeOverlay</item>
 ...
</style>

<style name="MyButtonThemeOverlay">
   <item name="colorOnSurface">@color/mycolor</item>
</style>

然后在布局中添加不带样式的按钮它将使用由样式全局定义的My.Button样式。

<com.google.android.material.button.MaterialButton
  .../>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Eclipse在颜色主题中更改颜色?

来自分类Dev

更改背景颜色已禁用切换按钮

来自分类Dev

如何在ZK主题中更改网格默认状态?

来自分类Dev

如何更改按钮的背景颜色?

来自分类Dev

如何更改Bootstrap已禁用按钮的颜色?

来自分类Dev

如何在主题中全局更改android按钮文本颜色

来自分类Dev

更改Bootstrap材质主题的颜色

来自分类Dev

用主题更改按钮的颜色

来自分类Dev

如何从主题更改CardView背景颜色

来自分类Dev

如何更改状态栏背景的颜色?

来自分类Dev

Python Jupyter笔记本SHAP force_plot,如何在深色主题中更改背景颜色或文本颜色?

来自分类Dev

反应:材质UI主题更改后,按钮不会更改其颜色

来自分类Dev

如何更改Vuetify主题背景颜色

来自分类Dev

更改ZK主题中的基本颜色

来自分类Dev

禁用按钮,但保持背景颜色

来自分类Dev

GTK2:如何更改GTK主题中的特定颜色

来自分类Dev

如何在主题中更改android:homeAsUpIndicator的颜色

来自分类Dev

在XFCE主题中更改颜色

来自分类Dev

如何禁用母版WordPress主题中的功能?

来自分类Dev

如何更改按钮背景的颜色

来自分类Dev

单击按钮时如何更改背景颜色

来自分类Dev

如何在倾斜主题中更改页面主体div的颜色?

来自分类Dev

如何更改,禁用按钮颜色的FMX?

来自分类Dev

如何更改 Yaru 主题中的按钮颜色?

来自分类Dev

如何更改按钮中的背景颜色大小?

来自分类Dev

禁用离子按钮 Ionic 2 上的悬停背景颜色更改

来自分类Dev

如何更改按钮背景和文本颜色?

来自分类Dev

如何更改 Hestia Pro WordPress 主题中的商店背景颜色?

来自分类Dev

更改主题中的页面背景

Related 相关文章

热门标签

归档