为什么材质 FAB 在禁用时不改变颜色?

2023-11-27

我正在禁用材质浮动操作按钮,但当禁用设置为 true 时,颜色不会改变。我认为 Material 有一个 FAB 主题,禁用后它应该变成浅灰色。我不想在每次启用/禁用背景时添加代码来更改背景。

我目前使用的材料版本:1.1.0

在代码中我只是将 fab 设置为禁用fab.isEnabled = false

这是 XML

            <com.google.android.material.floatingactionbutton.FloatingActionButton
                android:id="@+id/save_reservation_fab"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="@dimen/keyline_2"
                app:backgroundTint="@color/color_primary"
                android:src="@drawable/ic_save_black_72dp"
                app:tint="@color/color_on_primary"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"/>

禁用/启用的 fab 如下所示:

enter image description here

它应该看起来像这样:

enter image description here


I suspect这是罪魁祸首:

app:backgroundTint="@color/color_primary"

无论 FAB 的状态如何,这都会给 FAB 着色。

您可以通过将色调设置为ColorStateList而不是原始颜色值。即创建一个名为fab_color.xml在你的res/color/目录,并包括以下内容:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:color="your gray here"/>
    <item android:color="@color/color_primary"/>
</selector>

并将您的色调更改为:

app:backgroundTint="@color/fab_color"

或者,您可以调整 Activity 的主题,使 FAB 的默认颜色是您想要的颜色(@color/color_primary),然后删除app:backgroundTint总共 attr。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么材质 FAB 在禁用时不改变颜色? 的相关文章

  • Android - 如何一次只允许播放一个 MediaPlayer 实例?

    我正在尝试创建一个简单的 Sound board Android 应用程序 使用 ListView 项目作为按钮 顺便说一句 我是一个新手程序员 我的想法是 我按下一个按钮 就会播放一个特定的声音文件 如果我在播放声音时按下任何按钮 它应该
  • 如何将安卓手机从睡眠状态唤醒?

    如何以编程方式将 Android 手机从睡眠状态唤醒 挂起至内存 我不想获取任何唤醒锁 这意味着手机在禁用 CPU 的情况下进入 真正的 睡眠状态 我想我可以使用某种RTC 实时时钟 机制 有人有例子吗 Thanks 为了让Activity
  • Kotlin super.finalize()

    当迁移到Kotlin from Java我遇到了一个问题 我覆盖了Object s finalize method Override protected void finalize throws Throwable stopTimer su
  • Android:“dp”到“px”转换?

    我正在读这篇文章 http developer android com guide practices screens support html http developer android com guide practices scre
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • Android 原理图内容提供程序库配置?

    Jake Wharton 在最近的一次演讲中提到了这个库 它看起来是避免大量样板文件的好方法 所以我尝试了一下 但没有任何成功 https github com SimonVT schematic https github com Simo
  • 获取 AlarmManager 中活动的 PendingIntents 列表

    我有办法获取活动列表PendingIntent在设备中 我开始工作AlarmManager我想看看我的PendingIntents 已正确创建和删除 也很高兴看到其他什么PendingIntent在那里 只是为了看看某些应用程序是否正在做一
  • TextView 之间有分隔线

    我正在尝试在 android studio 中创建以下布局 因为我对 android 东西还很陌生 所以我第一次尝试使用 LinearLayout 并认为这可能无法实现 现在我正在尝试使用RelativeLayout 我已经用颜色创建了这个
  • 从 Firebase 数据库填充微调器

    public class MainActivity extends AppCompatActivity DatabaseReference reference Spinner areaSpinner ArrayList
  • 应用程序未安装在 Android 模拟器上

    我正在 android Geocoder 中开发一个应用程序 当我运行该应用程序时 它会显示 2011 01 11 11 08 13 GeoTourProject 自动目标模式 使用现有模拟器 emulator 5554 运行兼容的 AVD
  • Flutter 深度链接

    据Flutter官方介绍深层链接页面 https flutter dev docs development ui navigation deep linking 我们不需要任何插件或本机 Android iOS 代码来处理深层链接 但它并没
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 使用 Matrix.setPolyToPoly 选择位图上具有 4 个点的区域

    我正在 Android 上使用位图 在使用 4 个点选择位图上的区域时遇到问题 并非所有 4 点组都适合我 在某些情况下 结果只是一个空白位图 而不是裁剪后的位图 如图所示 并且 logcat 中没有任何错误 甚至是内存错误 这是我用来进行
  • 材质设计图标颜色

    应该是哪种颜色 暗 材质图标 在官方文档上 https www google com design spec style icons html icons system icons https www google com design s
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • 在 Android 上按下电源按钮时,如何防止先调用 onDestroy() 再调用 onCreate()

    我正在记录每个 onCreate 和 onDestroy 调用 我发现 一旦我单击 Android 上的电源按钮 以及模拟器上的电源按钮 我的活动中就会拨打电话 gt onDestroy gt onCreate 这会杀死我的游戏 然后立即从
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • Android - 将 ImageView 保存到具有全分辨率图像的文件

    我将图像放入 ImageView 中 并实现了多点触控来调整 ImageView 中的图像大小和移动图像 现在我需要将调整大小的图像保存到图像文件中 我已经尝试过 getDrawingCache 但该图像具有 ImageView 的大小 我
  • 用于推送通知的设备令牌

    我正在实施推送通知服务 我需要创建一个数据库来存储 4 个移动平台的所有设备令牌 我想根据他们的平台 iOS Android BlackBerry WP7 来组织它们 但是有什么方法可以区分平台 这样如果我只想向 Android 用户发送消
  • 如何删除因 Google Fitness API 7.5.0 添加的权限

    将我的 play services fitness api 从 7 0 0 更新到 7 5 0 后 我注意到当我将新版本上传到 PlayStore 时 它 告诉我正在添加一个新权限和 2 个新功能 我没有这样做 有没有搞错 在做了一些研究来

随机推荐

  • MATLAB:如何在 parfor 中设置随机种子以产生与 Serial for 相同的结果?

    我设置了以下最小示例 rng 0 randseedoffset random unid 10 5 1 t cell 10 1 for i 1 10 rng randseedoffset i t i random unid 1000 end
  • XML::LibXML 中实现了哪个版本的 XPath?

    有谁知道 XML LibMXL 中实现了哪个版本的 XPath 规范 或者更重要的是 在哪里可以找到可在 LibXML 中使用的 XPath 函数的描述 例如 我尝试过类似的东西 dcDOM gt findvalue dc identifi
  • C 有标准的 ABI 吗?

    来自讨论别的地方 C 没有标准的ABI 应用程序二进制接口 但C也没有 对吗 在任何给定的平台上它几乎都是如此 如果缺乏一种语言 它就无法作为跨语言交流的通用语言 您对此有何看法 C 没有定义 ABI 事实上 它竭尽全力避免定义 ABI 像
  • 如何在sklearn中对分类变量进行编码?

    我正在尝试使用 UCI 存储库中的汽车评估数据集 我想知道是否有一种便捷的方法可以在 sklearn 中对分类变量进行二值化 一种方法是使用 LabelBinarizer 的 DictVectorizer 但在这里我得到了 k 个不同的特征
  • 使用 HBase 进行行分页

    有没有办法在HBase中基于rowkey进行分页 我想要和我一样的效果SQL with SELECT FROM table LIMIT 10 OFFSET 10 如果这是不可能的 我应该如何最好地设计我的行键以进行适当的查询 您可以利用页面
  • 重新分配一次性对象变量是如何工作的?

    在 C 中 当用新对象重新分配一次性对象变量时 它在内存中如何工作 旧对象占用的内存空间会被新对象覆盖吗 或者我还需要打电话吗Dispose 释放它使用的资源 DisposableThing thing thing new Disposab
  • LINQ to Entities Union 引发错误

    我已经成功地完成了以下工作 var transactions from t in context Transactions group t Create Date Time by t Participation Id into t1 sel
  • 如何将类型应用于 NSFetchRequest 实例?

    在 Swift 2 中 以下代码有效 let request NSFetchRequest entityName String 但在 Swift 3 中它给出了错误 无法推断通用参数 ResultType because NSFetchRe
  • 具有默认参数的成员函数指针

    我正在尝试创建一个指向具有默认参数的成员函数的指针 当我通过此函数指针调用时 我不想为默认参数指定参数 根据标准 这是不允许的 但我以前从未发现过任何标准不允许的事情 而我却无法以其他符合标准的方式做到这一点 到目前为止 我还没有找到一种方
  • R 中的简单 if-else 循环

    有人能告诉我 R 中的 if else 循环有什么问题吗 我经常无法让 if else 循环工作 我收到错误 if match SubjResponse names data NA observed lt data SubjResponse
  • 在 C# 中将 4 字节数组转换为浮点数时出现问题

    我正在使用 C 并从某个控制器读取字节数组并将它们转换为其类型 除浮点值外 所有值 int string 都可以 假设得到的值为 533174 1 但是当读取数组时 byteArr 0 2 byteArr 1 73 byteArr 2 98
  • lambda 是否会在内存中保留任何数据?

    我在 AWS lambda 中有以下代码 const cache exports handler async event gt TODO implement if cache event key console log read from
  • 为什么这有效? (在C++中查找奇数)

    for unsigned int i 1 i lt 100 i if i 0x00000001 std cout lt lt i lt lt 为什么 以及如何 if i 0x00000001 找出奇数 0x00000001 is 1尽管它是
  • 无法加载 AppCompat ActionBar,出现未知错误?

    构建 gradle 文件 apply plugin com android application android compileSdkVersion 28 defaultConfig applicationId io dume dume
  • 在 PostgreSQL 中动态生成交叉表列

    我正在尝试创建crosstabPostgreSQL 中的查询 使其自动生成crosstab列而不是对其进行硬编码 我编写了一个函数 可以动态生成我需要的列列表crosstab询问 这个想法是将这个函数的结果替换为crosstab使用动态sq
  • 解析Java源代码

    我被要求开发一个软件 它应该能够创建输入Java源代码的流程图 控制流 于是我开始研究并得出以下解决方案 要创建流程图 控制流 我必须识别给定源代码中的控制语句和函数调用现在我有两种识别方法 通过编写我自己的语法来解析源代码 我认为这是一个
  • 如何从外部软件调用证明助手Coq

    如何从外部软件调用证明助手Coq Coq 有一些 API 吗 Coq 命令行界面是否足够丰富 可以在文件中传递参数并在文件中接收响应 我对 Java 或 C 桥感兴趣 这是合理的问题 Coq 并不是一种常见的商业软件 人们可以从中获得开发人
  • 如何将匿名类型作为参数传递?

    如何将匿名类型作为参数传递给其他函数 考虑这个例子 var query from employee in employees select new Name employee Name Id employee Id LogEmployees
  • 全局 var 与共享实例 swift

    Swift 中的全局变量和共享实例有什么区别 它们各自的使用领域是什么 任何人都可以根据 Swift 澄清他们的概念吗 全局变量是在文件顶层声明的变量 所以如果我们有一个名为Bar 您可以存储对实例的引用Bar在这样的全局变量中 var b
  • 为什么材质 FAB 在禁用时不改变颜色?

    我正在禁用材质浮动操作按钮 但当禁用设置为 true 时 颜色不会改变 我认为 Material 有一个 FAB 主题 禁用后它应该变成浅灰色 我不想在每次启用 禁用背景时添加代码来更改背景 我目前使用的材料版本 1 1 0 在代码中我只是