Android 涟漪效应被选定状态覆盖

2023-11-27

经过一段时间的寻找后,我一直无法找到这个问题的答案......

我有一个回收器视图,其中的项目在选择时具有红色背景和白色文本(之前背景为白色,文本为黑色)。为此,我使用选择器。

我最近尝试为此添加波纹效果,但除非我长时间单击该项目,否则该项目的背景会直接变为红色而没有波纹。我假设这是因为选择器状态 state_selected 覆盖了 sate_pressed 上的纹波?

有谁知道是否有办法解决这个问题?这是我使用的选择器代码:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@android:color/holo_red_dark" >

    <item>
        <selector xmlns:android="http://schemas.android.com/apk/res/android" >
            <item
                android:drawable="@drawable/ripple"
                android:state_pressed="true"/>
            <item
                android:drawable="@android:color/holo_red_dark"
                android:state_selected="true"/>
            <item android:drawable="@android:color/white"/>
        </selector>
    </item>

</ripple>

提前致谢!


要创建具有波纹效果并显示选定状态的选择器背景,我执行以下操作:

首先定义突出显示颜色,并具有一定的透明度:

  • 值/颜色.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="selector_color">#660000ff</color>
</resources>

您可能希望在棒棒糖之前具有兼容性。将典型的老式选择器放入可绘制文件夹中:

  • 可绘制/selector_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/selector_color" android:state_pressed="true"/>
    <item android:drawable="@color/selector_color" android:state_selected="true"/>
    <item android:drawable="@android:color/transparent"/>
</selector>

然后在drawable-v21文件夹中添加以下图层drawable:

  • 可绘制-v21/selector_background.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <selector>
            <item android:state_selected="true"
                android:drawable="@color/selector_color" />
            <item android:drawable="@android:color/transparent" />
        </selector>
    </item>
    <item>
        <ripple android:color="@color/selector_color">
            <item android:id="@android:id/mask">
                <color android:color="@android:color/white" />
            </item>
        </ripple>
    </item>
</layer-list>

现在你可以使用@drawable/selector_background为您的选择器。

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

Android 涟漪效应被选定状态覆盖 的相关文章

  • ACTION_VIEW 的 Intent.createChooser 仅显示默认浏览器

    我正在尝试使用 Intent createChooser 显示应用程序选择器对话框 该对话框将列出用户手机中所有可用的网络浏览器 我正在使用下面的代码 Intent browserIntent new Intent Intent ACTIO
  • 未找到 Gradle DSL 方法:“versionCode()”

    构建我的 Android 项目时遇到问题 我使用Grgit https github com ajoberstar grgit填写versionCode and versionName在 gradle 中 一切工作正常 直到我将 Andro
  • 如何从另一个xml文件动态更新xml文件?

    我想从另一个 xml 文件更新 xml 文件 我使用了一个 xml 文件 如下所示 one xml
  • 如何编辑 gradle 依赖项

    我正在开发一个 android 项目 该项目在我的 gradle 文件中使用以下依赖项 compile com mapzen on the road 1 1 1 我想编辑其中一个文件 以添加一些缺少的功能并为该项目做出贡献 如何下载该项目并
  • 无法合并 Dex - Android Studio 3.0

    当我在稳定频道中将 Android Studio 更新到 3 0 并运行该项目时 我开始收到以下错误 Error Execution failed for task app transformDexArchiveWithExternalLi
  • 更改 AChartEngine 中的图例大小

    我想专门更改饼图的图例大小输出 我已经尝试了所有可以找到的 AChartEngine 方法 但没有一个只能更改图例文本大小 我必须重写 onDraw 函数吗 如果是这样 怎么办 要设置图例高度 请使用 renderer setLegendH
  • 在 Android 中将应用程序上下文保存到静态变量是否安全?

    我知道在 Android 上使用静态变量是相当危险的 特别是当您将它们引用到活动时 但是 如果我有一个扩展 Application 的类 我们称此类为 App 引用此类的实例是否安全 如果是这样 任何其他类对应用程序上下文进行任何类型的引用
  • 如何在照片删除后刷新 Android 的 MediaStore

    问题 如何使媒体存储刷新其已删除文件的条目 从外部存储中删除代码中的照片后 我仍然在图库中看到已删除照片的插槽 空白照片 画廊似乎反映了媒体存储 并且在媒体存储中找到了已删除的照片 直到手机重新启动或通常 直到重新扫描媒体为止 尝试扫描已删
  • 如何在 Android 清单文件中设置文本外观?

    是否可以做相当于 setTextAppearance context android R style TextAppearance Medium 在 Android 应用程序的清单文件中 android textAppearance and
  • Locale.getDefault().getCountry() 返回空字符串

    我正在尝试使用国家 地区代码获取用户语言 例如en US es es 但是当我使用Locale getDefault getCountry 它返回空字符串 虽然它给了我正确的语言Locale getDefault getLanguage N
  • 如何覆盖日期选择器的高度和宽度以填充父布局

    我有一个活动包含一个日期选择器 我想设置DatePicker适合屏幕 我试过这个答案 https stackoverflow com questions 6674667 how to customize date pickers width
  • Facebook LoginActivity 未正确显示

    我有一个使用 Facebook 登录的应用程序 我有 FacebookSDK 并且使用 com facebook LoginActivity 问题是 在 10 英寸平板电脑上 当显示软键盘时 活动无法正确显示 我使用的是 Samsung G
  • 版本 5 上带有 getBackground().setAlpha 的按钮 - 棒棒糖无法正常工作

    我有这段代码 适用于自 API 14 以来的每个版本 但在 Android 5 0 Lollipop 上无法正常工作 以下是我希望按钮出现的方式 单击按钮1 buttonArrivals getBackground setAlpha 180
  • 如何从SurfaceView绘制到Canvas?

    我正在尝试做简单的画家 问题是Android看起来有三个独立的Canvas并给我它来顺序绘制 我用以下方式制作了用户界面SurfaceView 把霍尔德从中拿走 Override protected void onCreate Bundle
  • 无法在 Android 模拟器中安装 apk

    我正在尝试通过 adb shell 在 ICS 模拟器中安装 apk 从一个站点下载 但出现以下错误 失败 INSTALL FAILED UID CHANGED 可能是什么问题 只需 rm r 有问题的数据目录即可 如果您在安装时遇到此错误
  • 如何在新标签 android webview 中打开链接? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经使用 webview 创建了一个 android 应用程序来显示我的网站 我什至想添加在新选项卡中打开链接的功能 但我找不到任何
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • ormlite 将日期读取为 'yyyy-MM-dd'

    我需要读取给我的 sqlite 数据库 因此我无法更改表中的日期格式 yyyy MM dd 当我尝试使用 ormlite 为我生成对象时 使用以下注释 DatabaseField columnName REVISION DATE dataT
  • gradle-experimental:0.1.0 buildConfigField

    谁知道怎么定义buildConfigField在实验性的 gradle 插件中 android productFlavors create demo applicationId com anthonymandra rawdroid buil
  • 使用支持库中的 BottomSheet 时如何调暗背景?

    怎样才能让背景像显示的那样变暗here https material design storage googleapis com publish material v 8 material ext publish 0Bzhp5Z4wHba3

随机推荐

  • 在 Python 中的 plt.colorbar() 上格式化数字以包含逗号

    我正在尝试格式化我的颜色条 以便数字用逗号格式化 任何帮助将不胜感激 import numpy as np import matplotlib pyplot as plt plt matshow np array 30000 8000 12
  • UI跨线程操作异常后的Task.ConfigureAwait行为

    我正在玩Task ConfigureAwait为了更好地了解引擎盖之外的情况 所以我在将一些 UI 访问内容与ConfigureAwait 下面是使用简单 Windows 窗体的示例应用程序 其中 1Button接下来是测试结果 priva
  • 在 Doctrine 2.0 实体中使用 EntityManager

    我有 2 个实体 国家 地区 id 名称 和映射 id 对象 internalId externalId 国家和映射不通过关联连接 因为映射不仅具有国家 地区的行 我需要使用以下条件获取国家 地区的外部 ID country id mapp
  • 自定义错误页面中的 AspxErrorPath

    目前 我们有一个页面 用于在我们的网站上发生错误时显示一般错误消息 除了显示一个提到有错误的标签之外 它没有任何其他功能 这是我的问题 我们的客户已经进行了安全审查 并告诉我们 由于查询字符串中的 URL 我们的错误页面包含网络钓鱼 现在我
  • 如何删除两个特定字符之间的子字符串

    所以我有一个字符串 this is the beginning this is what i want to remove and this is the end 如何使用 Javascript 来定位逗号和正斜杠之间的字符串 我还想删除逗
  • 缩放和平移包含超过 10k 个对象的 HTML5 画布的最佳实践

    我需要在画布中构建一种地图 它显示超过 10 000 个元素 圆圈 并且需要缩放和平移 我在这里描述了我的方法Android 在调整多个画布元素大小和移动多个画布元素时速度显着变慢并改变了我对评论中提出的建议的实施 平移地图setTrans
  • 如何自动从 JUnit 4 迁移到 JUnit 5?

    本着这个问题从 JUnit 3 到 JUnit 4 是否有任何正则表达式列表高效地从 junit 4 API 迁移到 junit 5 API 无论代码大小如何 目前的工具还不是很好 但正在改进 IntelliJ 将大多数注释迁移到 JUni
  • Ubuntu 8.04 上打开文件过多错误

    mysqldump Couldn t execute show fields from tablename Out of resources when opening file databasename tablename P p125 M
  • Android onActivityResult 提前调用

    我有 2 个活动 每个活动都在单独的应用程序中 Activity 1 有一个用户可以单击的按钮 它使用其 Intent 调用第二个 ActivityonClick method Intent myIntent getPackageManag
  • 如果用户拒绝推送通知提示的回调方法?

    我的问题是我想显示初始推送通知提示 应用程序想要向您发送推送通知 的加载屏幕 所以如果用户点击yes我可以继续并在随后调用的委托方法中启动应用程序 void application UIApplication application did
  • Kotlin 协程暂停 fun + Retrofit 抛出“未找到 Retrofit 注解”错误

    我试图在 2 5 1 SNAPSHOT 中使用 Retrofit 的协程支持 但我不断遇到奇怪的异常 我的改造服务类别有 GET weather suspend fun getForecast Query q query String Qu
  • 手机快速点击-防止鬼焦

    我正在为移动浏览器进行快速点击 当我快速单击当前页面的链接时 它会使用 ajax 加载到下一页 我的快速点击脚本现在可以停止幽灵点击 但如果当前页面的点击位置下一页有一个输入元素 它仍然会获得焦点并显示虚拟键盘 如何防止鬼焦点事件呢 要阻止
  • 替代applet的替代技术?

    我有一个 未签名的 小程序 可以让您绘制逻辑电路并在屏幕上测试它 有点像电子工作台 然后它序列化电路 内部形式 而不是视觉表示 并将其发送到服务器其中运行大量自动化测试并生成性能报告 这是一个更大的网络应用程序中很小但至关重要的部分 然而
  • JNA库截图比机器人类慢?

    Since Robot createScreenCaputure 方法很慢 我决定使用本机库 我搜索并找到了这个forum并找到一个具体的代码片段它使用JNA图书馆 这是一个旧版本 所以我重写了代码 import java awt Rect
  • CakePHP 查找两个日期之间的查询条件

    我的数据库中有一个开始日期和结束日期 以及表单字段中的 date 变量 我现在尝试查询 date 等于数据库中的开始 结束日期或这两者之间的任何日期的所有行 这与 daysAsSql 的工作方式文档中描述的内容相反 我不知道如何让它发挥作用
  • 如何立即暂停所有视频 (html5)?

    now pause all active videos vid get 0 pause vid get 1 pause vid get 2 pause 这就是我现在所拥有的 但还不够理想 我有点累了 所以我可能会错过一些明显的东西 但我怎样
  • 如何刷新 HttpListener 响应流?

    HttpListener 为您提供响应流 但调用flush 没有任何意义 从来源来看很清楚 因为它实际上什么也没做 深入研究 HTTP API 表明这是 HttpListener 本身的限制 任何人都知道如何刷新 HttpListener
  • 操作栏 Sherlock 4 标题文本颜色 - 我哪里出错了?

    我很难将操作栏标题文本颜色变为白色 按照示例 我相信我的代码是正确的 但是文本显示为黑色 谁能看到我做错了什么吗
  • .NET 迁移:在运行时设置和迁移多个数据库

    简单的介绍 我有这个 ASP NET Webforms 站点 其特殊之处在于它不仅有 1 个数据库 而且有很多数据库 为什么 因为您可以动态创建网站的新 实例 每个 实例 共享相同的代码库 但有自己的数据库 这些所有数据库都具有相同的模式
  • Android 涟漪效应被选定状态覆盖

    经过一段时间的寻找后 我一直无法找到这个问题的答案 我有一个回收器视图 其中的项目在选择时具有红色背景和白色文本 之前背景为白色 文本为黑色 为此 我使用选择器 我最近尝试为此添加波纹效果 但除非我长时间单击该项目 否则该项目的背景会直接变