使用 ?attr/selectableItemBackground 作为背景时如何修改波纹颜色?

2024-02-26

我见过一些 SO 问题,他们给出了一些可能的方法来实现我想要的。例如:

  1. Use colorControlHighlightstyles.xml 中的属性。

    这是我的 styles-v21.xml:

    <style name="SelectableItemBackground">
        <item name="android:colorControlHighlight">#5677FC</item>
        <item name="android:background">?attr/selectableItemBackground</item>
    </style>
    

    还有我的小部件:

    <TextView
        android:id="@+id/tv_take_photo_as_bt"
        android:layout_width="280dp"
        android:layout_height="48dp"
        android:text="@string/act_take_photo"
        style="@style/SelectableItemBackground"/>
    

    但这不起作用。我也尝试添加parent="Theme.AppCompat为“SelectableItemBackground”样式,或更改为colorControlHighlight(no android: prefix)",或更改为?android:attr/selectableItemBackground,都没有用。

  2. Use backgroundTint布局中的属性。

    所以我添加android:backgroundTint="#5677FC" to my TextView。还是没用。然后我尝试改变android:backgroundTintMode to src_in and src_atop,而且它们永远不会产生任何影响。

那么,当我使用时如何改变波纹颜色?attr/selectableItemBackground作为背景。我只关注棒棒糖及以上。先感谢您!


最后我找到了解决方案:而不是使用android:colorControlHighlight直接在主题中SelectableItemBackground,我应该写另一种风格:

<style name="SelectableItemTheme">
    <item name="colorControlHighlight">@color/ripple_color</item>
</style>

Then:

<style name="SelectableItemBackground">
    <item name="android:theme">@style/SelectableItemTheme</item>
    <item name="android:background">?attr/selectableItemBackground</item>
</style>

最后添加style="@style/SelectableItemBackground" to View在布局.xml 中。

更新于 2016/8/26N发布后,我发现有时我们无法使用此方法来设置某些类型的波纹颜色View(例如,CardView)。现在我强烈推荐开发者使用RippleDrawable,也可以在 xml 中声明。这是一个例子:

我想在用户触摸/单击时显示连锁反应CardViewAPI21以上,当然在Lollipop之前应该还有另一种反馈。所以我应该写:

<android.support.v7.widget.CardView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:foreground="@drawable/selectable_item_background"/>

and selectable_item_background in drawable folder:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false" android:drawable="@android:color/transparent" />
    <item android:drawable="@color/color_clicked" />
</selector>

selectable_item_background in drawable-v21 folder:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ripple_black" />
</selector>

最后,ripple_black in drawable(or drawable-v21) 文件夹:

<ripple
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:color="@color/color_clicked"
    tools:ignore="NewApi" /> <!--you can remove this line if it's in v21 folder-->

就是这样。对于其他视图,也许您应该使用android:background="@drawable/selectable_item_background"。不要忘记设置一个OnClickListener, OnTouchListener或类似的东西,否则波纹不会显示。

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

使用 ?attr/selectableItemBackground 作为背景时如何修改波纹颜色? 的相关文章

  • 如何像 youtube 一样在纸板中观看普通视频

    我有一个可以正常播放的应用程序VR视频 我的应用程序有两个玩家可以玩这两种类型 在我的VrVideoView有一个按钮可以让视频播放立体声模式 我的问题是 我怎样才能观看正常的视频Cardboard就像YouTube app None
  • 偶尔连接的 CQRS 系统 - 客户端和服务器命令 - 基于任务的屏幕

    Premise 建议在CQRS DDD ES样式应用程序使用task基于屏幕 这些屏幕引导用户并捕获意图 These task屏幕也可以称为感应式用户界面 UI 设计指南的一些示例可以帮助您创建现代的 用户友好的应用程序 Microsoft
  • Java 中的下载管理器 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要通过 FTP HTTP 从 Java 获取几个大文件 几个演出 有现成的库 java 命令行工具
  • Hibernate Envers:如何捕获谁删除了审计表中的实体

    我在用hibernate envers with spring 一切工作正常 除了当我删除一个实体时 它不会改变的值updated by and updated date在审计表内 它会在之后保存一个与之前完全相同的实体 仅复制 sprin
  • 如何打印Oracle中过程的定义?

    oracle中有没有办法查看过程的结构是什么 我正在尝试记录并运行程序 并希望将实际的程序结构存储在我的日志中 您可以查询ALL SOURCE table SELECT text FROM all source WHERE owner lt
  • 真实值与预测值的降维可视化

    我有一个数据框 如下所示 label predicted F1 F2 F3 F40 major minor 2 1 4 major major 1 0 10 minor patch 4 3 23 major patch 2 1 11 min
  • 在magento Attributes中添加自定义属性并显示在前端

    我已经开始使用 magento 作为我的电子商务 cms 我知道这是一个非常强大的平台 最近 我发现它的功能可以帮助开发人员扩展核心 并且我已经成功添加了自定义类别选项 是否有机会在某个属性上达到相同的结果 我想在属性选项卡上添加文本描述并
  • 解析用户周围的位置

    您好 我开发了一个应用程序 我想问一个问题 在我的数据云解析中 我有 餐馆 类 我有三列 名称 类型字符串 imageFile 类型文件 description 类型数组和 Location 类型GeoPoint 我想知道使用哪种方法来获取
  • 为什么 INT64_MIN 的定义不同?为什么他们的行为不同?

    The stdint h我公司的标题是 define INT64 MIN 9223372036854775808LL 但在我项目的一些代码中 一位程序员写道 undef INT64 MIN define INT64 MIN 92233720
  • MVC ASP.NET 或 Razor

    我对 MVC 很陌生 我对 Silver light WPF 和 MVVM 有相当多的了解 但对 MVC 知之甚少 我正在按照 Microsoft 网站上的主要教程进行操作http www asp net mvc tutorials get
  • 在 Oracle 中使用触发器记录对表的更改

    我的一门课有一个项目 当我们的两个表发生更改时 我们需要创建一个日志 插入 更新 删除 我们需要使用Oracle触发器和PL SQL 在日志文件中 我们需要记录用户ID 日期时间 IP地址和事件 插入 更新 删除 我知道如何设置触发器 但我
  • 如何将 Hibernate 5 安装到 Apache Karaf v4 中

    我已经安装了 Apache Karaf v4 03 并查询了 Hibernate 的可用功能列表 如下所示 不幸的是 我使用的是 Hibernate v5 hibernate 3 3 2 GA Uninstalled enterprise
  • 如何在 Swift 中使用 substringToIndex? [复制]

    这个问题在这里已经有答案了 我在这一行收到编译器错误 UIDevice currentDevice identifierForVendor UUIDString substringToIndex 8 类型 String Index 不符合协
  • 在 MVC4 中使函数异步时 HttpContext.Current null

    我目前正在 VS2010 SP1 中开发 MVC4 我做了其中一个功能 控制器类异步 作为其中的一部分 我制作了控制器类 派生自 AsyncController 并添加了以下两个方法 参见代码部分 1 和 2 下 一种以 Async 结尾的
  • simple_fields_for 没有出现 [rails 4]

    我正在尝试创建两个隐藏字段 其中一个显示没有问题 但来自嵌套表单的另一个则没有 产品 rb class Product lt ActiveRecord Base has many product options dependent dest
  • jsf文件下载不起作用

    当我点击h commandButton它执行myBean dowanlod 方法 但它不下载任何文件 这是我在支持 bean 中的方法 没有例外 光标变得忙碌 似乎在等待响应 对于这种操作是否有任何额外的配置或者这段代码有什么问题吗
  • 如何在 Laravel 中创建一条包罗万象的路线

    我需要一个 Laravelroutes php将捕获所有流量到特定的条目example com premium section网站 以便我可以提示人们在访问优质内容之前成为会员 您还可以通过在参数上使用正则表达式来捕获 全部 Route g
  • SQL 大表中的随机行(使用 where 子句)

    我有一个网站 人们可以在其中对汽车进行投票 向用户展示 4 辆汽车 他 她可以投票选出他们最喜欢的汽车 桌子cars有重要的列 car id int 10 not auto increment so has gaps views int 7
  • IOError:在 Linux 上的 ReportLab 中使用 matplotlib PNG 时“解码器 zip 不可用”,适用于 Windows

    我正在使用 ReportLab 打印 matplotlib 生成的图表 我可以在我的 Windows 开发机器上毫无问题地执行此操作 然而 当我部署到 Ubuntu 服务器时 渲染失败并出现所述错误 我假设我缺少一个 Python 模块 但
  • 使用 TkInter 绑定设置不可交互(点击)覆盖

    我已经浏览了其他几篇关于类似问题的帖子 所有这些似乎都指向this https stackoverflow com questions 29458775 tkinter see through window not affected by

随机推荐

  • 提交表单时,表单 onSubmit 函数不会触发

    我看过了 找不到任何像我的问题一样的东西 我有一个表格无法进行验证 我知道 JavaScript 文件正在加载 因为页面上的其他功能正在正常工作 我的代码如下
  • 在 Swift 3 中以编程方式使用 ScrollView

    我搜索了其他问题 似乎在 swift 3 中使用自动布局以编程方式创建滚动视图时仍然遇到一些问题 我能够让我的滚动视图显示如下图所示 但是当我滚动到底部时 我的其他标签却出现了问题不显示 滚动顶部 标签也不会消失 希望有人可以帮助查看我下面
  • 将类添加到表单字段 Django ModelForm

    我正在尝试使用 Django ModelForm 编写 Bootstrap 表单 我已阅读 Django 文档有关表单的 Django 文档 https docs djangoproject com en dev topics forms
  • Android Retrofit 2,用于编辑响应的 addInterceptor 和 addNetworkInterceptor 之间的差异

    我一直在尝试实现一个拦截器 OkHttp 3 2 和改造 2 用于在作为响应返回之前编辑 JSON 响应 我们请求数据的服务器根据成功或错误返回不同的数据 这使得映射对象变得困难 我试图通过将拦截器添加到 Retrofit 作为 Netwo
  • 去哪一个; Yii 或 Symfony

    好的 我是NOT询问哪一个更好 我知道 Yii 并不比 Symfony 好 Symfony 也不比 Yii 好 我想问的是我应该选择哪一个呢 我想提出几点 我有一个大型项目 格式非常好 编码也非常好 如果您看到我的代码 您会认为我制作了自己
  • Java Process无法通过Runtime.getRunTime().exec()获取InputStream

    try String str Process process Runtime getRuntime exec bash home abhishek workspace Pro run InputStream isout process ge
  • 动态加载程序集中的强类型 Razor 视图不会在运行时编译

    我在程序集中有一个 MVC3 区域动态加载与MEF 如果我使用具有强类型视图的 Webforms 视图引擎 一切都会正常工作 如果我将 Razor 视图引擎与dynamic模型 效果也很好 但如果我使用强类型 Razor 视图 视图编译在运
  • 在类上覆盖 dict()

    我正在尝试做一个dict 类似 Python 中的类 当你创建一个类时 你有某些方法告诉Python如何创建一个内置类 例如 覆盖 int 方法告诉 Python 如果用户使用则返回什么int 在类的一个实例上 同样适用于 float 您甚
  • redux 形式的多个复选框

    我想问一下 场景是这样的 我有多个复选框 但我的问题是每当我勾选一个复选框时 所有 4 个复选框都会被选中 还有为什么复选框的值只是 true 或 false 这是我的复选框 div div
  • 如何让 Visual Studio 自动获取传入提交

    因此 当在 MSVS 中使用 Git 时 您可以使用 Fetch 来查看正在等待您的传入提交 有没有办法将其设置为自动发生 或者我每次想到它时都被迫单击 获取 我有一个不同但接近的需求 我在一个大项目中使用了 git tf git tf f
  • 我需要释放 C 中 strerror() 的结果吗?

    据我了解 strerror errno 返回对应错误的字符串形式errno 那么 当我使用完函数后 是否需要释放函数的返回结果呢 你不仅不need to you must not 你唯一可以传递的东西free是指向您获得的内存的指针mall
  • ASP.NET Core 3.1 Azure AD 身份验证抛出 OptionsValidationException

    我正在尝试使用 Azure Active Directory 处理 Web 应用程序上的身份验证 然而 当我尝试用AuthorizeAttribute https learn microsoft com en us dotnet api m
  • 静态 D3 力导向图性能

    所以目前我正在尝试创建一个包含数千个节点和图中大约 30k 个链接的力导向图 正如您可能猜到的 模拟速度非常非常慢 我想做的是预先计算节点的所有位置并仅渲染静态 但交互式 图表 有没有办法使用 d3 js 计算力定向图而不渲染它 使其更快
  • Rails - 通过选择下拉菜单执行 ajax 调用

    我有一个视图 其中包含select标签 它不是表单的一部分 只是一个独立的下拉菜单 单击其中一个选项时 我想执行 ajax 调用 这是选择标签 这是一个基本的 jquery 我试图通过它来检测变化
  • 如何触发(window).focus页面加载?

    加载页面时 不会激活焦点 模糊状态 例如切换到另一个选项卡时blur显示 然后切换回页面focus激活 但在第一次加载页面时 没有任何状态被激活 为什么 这是预期的行为还是我搞砸了 function window focus functio
  • jupyterlab中初始化SparkContext时出错

    嗨 我正在尝试学习如何使用 pyspark 但是当我运行第一行时 import pyspark sc pyspark SparkContext local 我收到此错误 Py4JJavaError An error occurred whi
  • 如何在没有 SDK 或自定义应用程序 ID 的情况下创建 Facebook 分享按钮?

    我正在看Facebook 分享按钮的最新更新 https developers facebook com docs sharing reference share dialog如果不包含 Facebook javascript SDK 或者
  • 为什么pip找不到pysvn?

    我正在开发一个用 Python 2 编写的项目 并将其升级到 Python 3 到目前为止 我只是发现了一些很容易修复的小语法错误 我所做的就是在 Python 3 中创建一个新项目 确保其正常工作 并将旧项目中的代码块复制到新项目中 现在
  • 为什么 TypeScript 接口不支持索引签名,而类型别名却支持? [复制]

    这个问题在这里已经有答案了 我有一个带有字符串索引签名的类型 declare var result key string number 将接口分配给该类型失败 interface IData a number b number declar
  • 使用 ?attr/selectableItemBackground 作为背景时如何修改波纹颜色?

    我见过一些 SO 问题 他们给出了一些可能的方法来实现我想要的 例如 Use colorControlHighlightstyles xml 中的属性 这是我的 styles v21 xml 还有我的小部件