禁用时更改 FAB 背景颜色

2023-11-23

我试图弄清楚如何在按下浮动操作按钮后禁用 2 秒的持续时间时更改浮动操作按钮的背景颜色。我还希望它在 2 秒持续时间结束时恢复到原来的颜色。

这是按下时 2 秒延迟的代码。此代码位于 MainActivity 内的一个片段中。

 appBar.setExpanded(true, true);
 fab.setVisibility(View.VISIBLE);
 fab.setImageResource(R.drawable.ic_phone_white_18dp);

 fab.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
     fab.setClickable(false);
     Timer buttonTimer = new Timer();
     buttonTimer.schedule(new TimerTask() {
       @Override
       public void run() {
         runOnUiThread(new Runnable() {
           @Override
           public void run() {
             fab.setClickable(true);
           }
         });
       }
     }, 2000);

我尝试过玩StateListDrawable文档中的方法,但还没有遇到任何有效的方法。

这是 FAB 颜色主题的 XML

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/themeColorPressed" android:state_pressed="true"/>
    <item android:color="@color/themeColorPressed" android:state_checked="true"/>
    <item android:color="@color/themeColorPressed" android:state_selected="true"/>
    <item android:color="@color/themeColorPressed" android:state_enabled="false"/>
    <item android:color="@color/themeColor" android:state_enabled="true"/>
</selector>

只需用作app:backgroundTint选择器为:

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

然后只需在您的代码中使用:

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

禁用时更改 FAB 背景颜色 的相关文章

  • 更改首选项的背景颜色

    我有一个PreferenceCategory xml 文件 我已经在其中定义了所有首选项 我从扩展的类中调用它PreferenceActivity 我无法设置设置屏幕的背景 该屏幕是在如下所示的 xml 文件的帮助下显示的 请看我已经定义了
  • 服务在后台运行?

    我正在构建的应用程序的功能之一是记录功能 我通过在服务中启动 MediaRecorder 对象来实现此目的 Intent intent new Intent v getContext RecordService class Messenge
  • 为网络和/或持久存储序列化 Android Bundle?

    我需要序列化一个全面的应用程序 游戏 状态 以便通过网络传输或保存到磁盘并在以后检索 当然 捆绑包用于在多个用例中保存 恢复状态 因此使用它们将是理想的选择 但是 由于某种原因 Bundle 不可序列化 寻找解决方案只发现了将 Bundle
  • Android Studio磁盘空间不足如何解决?

    我随机收到此错误 并且不确定为什么 Android Studio 的磁盘空间变低 Android Studio 系统目录分区磁盘空间不足 Update 此应用程序安装在运行 10 10 1 的 Mac 上 具有 251GB 内部存储和占用
  • 明文 HTTP 流量...不允许

    我的程序从用户那里获取一个 URL 因此它可以向互联网上的任何网站发出请求 我试图让这成为可能 我查找了有关 Android HTTP Cleartext 错误的所有答案 并做了这个 但它仍然不允许我连接我的测试本地 PHP 服务器 我在这
  • 注销时Firebase facebook按钮android身份验证

    我在我的 Android 应用程序中使用 firebase 并在 facebook SDK 中使用登录 我面临的唯一问题是 当我使用 facebook 登录然后注销时 facebook 登录按钮处于 注销 状态 当我单击它时 它会询问我是否
  • Android Things 文件系统

    我正在 Android 上构建这个应用程序 我希望能够让它访问 U 盘上的媒体文件 甚至树莓派的 SD 卡上的媒体文件 我还不知道我将如何处理这些文件 但我只是想知道它是否可能 如果不是这样也没关系 我还有其他解决方案 但我想我会先从明显的
  • Twitter 集成期间获取访问令牌函数行为不当

    我只是想使用 twitter4j 从我的 Android 应用程序向 Twitter 分享文本 首先 我尝试的是我创建了一个新项目 并且这个特定的代码运行成功 然后我在我的应用程序中混合了该特定代码 登录 Twitter 成功完成 之后我发
  • 安卓;在 AdapterViewFlipper 上设置输入/输出动画:未知的动画师名称翻译

    我有一些非常简单的动画 可以与 ViewFlipper 完美配合 但如果我尝试在 AdapterViewFlipper 输入 输出上设置它们 我会收到运行时错误 未知的动画师名称翻译 查看每个方法的相应方法 看起来 ViewFlipper
  • 将 ArrayList 保存在捆绑包 savingInstanceState 中

    ArrayList 是在类级别定义的 这些是我保存的实例方法 Override protected void onSaveInstanceState Bundle outState super onSaveInstanceState out
  • 如何在Firebase Android应用程序中分离两个不同的用户?

    我有一个应用程序 有两种不同类型的用户 一种是教师 第二种是普通用户 如果普通会员登录 他会去normal memberActivity如果他是教师会员 他会去Teacher memberActivity 我如何在登录活动中执行此操作 我的
  • UnsupportedOperationException:特权进程中不允许使用 WebView

    我在用android sharedUserId android uid system 在我的清单中获得一些不可避免的权利 从 HDMI 输入读取安卓盒子 http eweat manufacturer globalsources com s
  • EditText 的高度不会扩展到其父级的高度

    我在滚动视图中放置了编辑文本 高度 match parent并期望它的高度等于滚动视图 但事实并非如此 它的高度就像wrap content这意味着如果 EditText 中没有文本 我必须将光标指向要弹出的软键盘的第一 行 我想要的是我可
  • 如何使用asynctask显示倒计时的进度条?

    在我的应用程序中 我希望用户按下按钮 然后等待 5 分钟 我知道这听起来很糟糕 但就这样吧 5 分钟等待期间的剩余时间应显示在进度条中 我使用带有文本视图的 CountDownTimer 来倒计时 但我的老板想要看起来更好的东西 这就是进度
  • 从 AlertDialog 返回值

    我想构建一个函数来创建 AlertDialog 并返回用户输入的字符串 这是我用于创建对话框的函数 如何返回该值 String m Text private String openDialog String title AlertDialo
  • Android 视图和视图组

    在安卓中ViewGroup继承自View A ViewGroup是一个容器 里面装有Views ViewGroup LinearLayout View TextView 为什么 Android 的人们将这种关系定义为Inheritance而
  • 在 TextView onTextChanged 上设置文本

    我有一个定义为类属性的文本视图 以便我可以在整个类中访问它 在 onCreate 方法中我执行以下操作 chars TextView findViewById R id chars chars setText 300 之后 public v
  • 在android中的日期选择器对话框中显示当前日期

    我多次尝试在日期选择器对话框中显示当前日期 但失败了 它显示 1 1 1990 我已经遵循了堆栈溢出的一些答案 但不幸的是这些对我不起作用 谁能解释一下在日期选择器对话框中显示当前日期的代码 谢谢 It may help you publi
  • TYPE_ACCELEROMETER 和 TYPE_LINEAR_ACCELERATION 传感器有什么区别?

    I think TYPE ACCELEROMETER显示设备加速 但是 我不明白什么时候应该使用TYPE LINEAR ACCELERATION 我需要计算移动设备的速度 哪种传感器适合此应用 另外 我读到TYPE LINEAR ACCEL
  • Android:列“_id”不存在

    我收到这个错误 IllegalArgumentException 列 id 不存在 当使用SimpleCursorAdapter从我的数据库中检索 该表确实有这个 id柱子 注意到这是一个常见问题 我尝试根据网上的一些解决方案来解决它 但它

随机推荐

  • 如何创建一个构造函数,让我可以使用花括号初始化列表进行构造?

    我的表型类具有以下构造函数 Phenotype uint8 init NUM ITEMS 我可以创建这样的表型 uint8 data 0 0 0 0 0 Phenotype p data 但是当我尝试创建这样的一个时出现错误 Phenoty
  • 如何以编程方式关闭休眠的急切获取?

    我在映射中关联到急切加载的集合 lazy false fetch subselect 当我执行查询时 如何使用 Hibernate 以编程方式关闭它 事实上 应该是相反的 您可以在映射中将其关闭 并在查询中使用 fetch 在特定用例上激活
  • 如何为 Windows 编译尽可能最小的 V8 库?

    我正在为学校制作一个游戏引擎 我想使用 Google 的 V8 来允许在引擎内编写 JavaScript 脚本 该引擎是使用 Visual Studio 2013 编写的 由于最终游戏不得超过 50MB 因此我希望 V8 文件大小的影响尽可
  • Python 反转/反转映射(但每个键有多个值)

    这实际上是这个问题的一个变体 但不是重复的 Python 反转 反转映射 给定一个像这样的字典 mydict a b c d e f 如何反转这个字典以获得 inv mydict b a c a e d f d 请注意 每个键下的值都是唯一
  • 如何从 gcov 获得更准确的结果?

    我正在使用 mingw gcc 4 4 0 尝试 gcov 我得到了一些有趣但奇怪的结果 常见的模式是这样的 5162 66 std string iterator i l Temp begin 5162 67 std string ite
  • 在asp.net中验证字符串是否为json

    有什么方法可以验证字符串是否为 json 吗 除了 try catch 之外 我正在使用 ServiceStack Json Serializer 但找不到与验证相关的方法 可能最快和最肮脏的方法是检查字符串是否以 public stati
  • 以角度方式将数据从一个组件传递到另一个组件

    我正在开发一个包含搜索功能的应用程序 现在我有 2 个应用程序组件 1 导航栏 2 搜索网格列表 Navbar 组件包含一个文本框 您可以在其中输入搜索查询并按 Enter 键 该组件将进行 api 调用并获取数据 当数据返回时 我想将此数
  • 邮件发送失败。无法将数据写入传输连接

    我正在使用 Gmail SMTP 服务器从 VB Net 发送邮件 尽管它可以正常发送一些电子邮件 但对于其他一些电子邮件 它会返回以下错误 邮件发送失败 无法将数据写入传输连接 System Net Sockets SocketExcep
  • 如何删除 Linq to Entity 中的多条记录? [复制]

    这个问题在这里已经有答案了 我有一个 sql 中的 tblA id int primary key fid int tblA 中的数据是 1 1 2 1 3 2 4 2 5 3 6 3 我删除一条记录通过以下代码 DatabaseEntit
  • 更改 core.autocrlf 后如何强制转换工作树文件?

    我在 Windows 上并且有系统范围core autocrlf true 对于特定的存储库 我已在本地覆盖它false 但这并没有转换签出文件中的行结尾 我怎么做 如果我使用例如手动转换文件dos2unix 它们显示为已更改 也尝试过gi
  • 设置“图像文件执行选项”将始终默认打开指定的 exe 文件

    As 这个链接建议 我要替换Notepad exe with Notepad2 exe using 图像文件执行选项 通过运行命令来实现 reg add HKLM Software Microsoft Windows NT CurrentV
  • 方法 openOrCreateDatabase(String, int, null) 未定义

    我正在尝试按如下方式打开数据库 SQLiteDatabase myDatabase myDatabase openOrCreateDatabase sudoku db Context MODE PRIVATE null 当我在 Servic
  • 在数据库表中动态添加列的设计模式

    用户希望在 UI 中动态添加新字段 这个新字段应该存储在数据库中 并且应该允许他们对其执行 CRUD 现在我可以通过指定 XML 来完成此操作 但我想要一种更好的方法来搜索这些新列 还有开枪的想法ALTER声明并添加新列似乎是错误的 任何人
  • Sharepoint:基于另一个列表的计算列

    我可能正在寻找错误的方法来做到这一点 但我在这里 我有一个 Sharepoint 列表 标题为 行程 其中包含安排到特定区域的行程列表 我有第二个列表 区域 其中包含固定数量的项目 每个项目代表一个特定区域 区域有一个标题为 条件 的列 描
  • Robolectric 启动期间反射出现 NullPointerException - 有任何提示吗?

    我正在 Eclipse 上开发一个 Android 项目 并且我正在尝试从在模拟器 设备上运行测试 即very慢 到机器人电动 我用 Robolectric 替换了 Android 库 将 JUnit 添加到路径中 将测试用例改回常规Tes
  • 使用Java从串口读取文件

    我是Java初学者 我正在写 FLASH getbytes 像这样serialport 之后我会得到FLASH OK作为回应 我必须再次发送文件请求 之后我会得到回复FILE OK然后我已读取文件直至文件末尾 我不知道如何做到这一点 所以请
  • 提高python中重心坐标计算的效率

    背景 我试图将一张脸扭曲成另一张不同形状的脸 为了将一张图像扭曲为另一张图像 我使用了面部标志的 delaunay 三角剖分 并将一幅肖像的三角形扭曲为第二幅肖像的相应三角形 我使用重心坐标系将三角形内的点映射到另一个三角形上相应的扭曲位置
  • 如何将 mingw-w64 和 MSYS2 与 eclipse 或 codeblocks 等 IDE 一起使用?

    我安装 msys2here 我下载i686 5 3 0 release posix dwarf rt v4 rev0 from here 设置后msys2 i686 20160205 exe 提炼i686 5 3 0 release pos
  • 我的 xpage 应用程序的基本 REST 服务

    我想为我的 XPage 应用程序设置一些基本的 REST 服务 因此 我在 xpage 上添加了 xe restService 控件 并选择 xe customRestService 其中我引用了 Java 类
  • 禁用时更改 FAB 背景颜色

    我试图弄清楚如何在按下浮动操作按钮后禁用 2 秒的持续时间时更改浮动操作按钮的背景颜色 我还希望它在 2 秒持续时间结束时恢复到原来的颜色 这是按下时 2 秒延迟的代码 此代码位于 MainActivity 内的一个片段中 appBar s