当前位置: 首页 > 知识库问答 >
问题:

禁用材质颜色状态按钮

田德馨
2023-03-14

材料规格显示禁用按钮状态,看起来是灰色的。

https://www.material.io/design/components/buttons.html#切换按钮

<com.google.android.material.button.MaterialButton
    android:id="@+id/disabled_material_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:enabled="false"
    android:text="@string/button_label_disabled"/>

只是默认情况下没有在材料Android组件中实现?材料组件是否定义了禁用的按钮状态器?

共有1个答案

曹建明
2023-03-14
  1. 创建文件夹/res/color(在res目录中)。
  2. 在此处添加一个新的颜色资源文件,名为color_states_materialbutton.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false"
        android:color="@color/colorDisabled"  />
    <item android:color="@color/colorEnabled" />
</selector>
<style name="MaterialButtonStyle" parent="Widget.MaterialComponents.Button.UnelevatedButton">
        <item name="backgroundTint">@color/color_states_materialbutton</item>
</style>
<com.google.android.material.button.MaterialButton
    style="@style/MaterialButtonStyle"
    android:id="@+id/disabled_material_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:enabled="false"
    android:text="@string/button_label_disabled"/>
 类似资料:
  • 我正在开发一个简单的应用程序来测试材料设计。我正在使用,我的活动如下所示: 布局定义为: 我想改变Android5前的状态栏颜色,并将其设置为,但我找不到方法。我试着用: 但是setStatusBar颜色可以从第21级开始使用。为什么如果我在主题中定义并使用appcompact,状态栏不会改变颜色?有人能帮忙吗?

  • 我四处寻找了一种处理android 5.0中按钮背景色的正确方法,我能找到的唯一解决方案是在values-21/styles中定义按钮的样式。xml: 这是为按钮着色的唯一方法,同时保留其设计和连锁反应吗?如果是的话,这意味着我必须为每个有不同颜色的按钮定义一个自定义主题,真的吗??? 注意:我的问题与向后兼容性和AppCompat无关,这已经讨论了很多。

  • 我开始学习Android材质设计。我学到了Lollipop版本的一些新功能。今天我尝试根据图像的颜色改变工具栏和状态栏的颜色。谁能指导我或提供任何链接如何做这一点? styles.xml: 主要活动: colors.xml:

  • 创建和使用材质 通过主菜单 Assets->Create->Material 或项目视图的上下文菜单,可以创建一个新材质。 默认情况下,新建材质会分配标准着色器,并且所有属性都空着,就像这样: 一旦材质被创建,你就可以把它应用到一个对象,并且在 检视视图 中修改它的所有属性。想把材质应用到一个对象上,只需要把材质从 项目视图 拖动到 场景是图 或 层级视图 中的任意对象上。 设置材质属性 你可以为