在回收器视图中使用包含其他背景颜色的项目获得涟漪效果



我需要在我的RecyclerView元素中一个简单的涟漪效果,这些元素有一个背景颜色集。由于他们已经设置了背景颜色(蓝色),因此我无法将背景设置为可绘制对象/波纹.xml:

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/color_view_pressed"> <!-- ripple color -->
<item android:drawable="@android:color/white"/>
<!-- normal color -->

所以我把我的涟漪.xml改为:

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/color_view_pressed"> <!-- ripple color -->
<item android:drawable="@android:color/blue"/>
<!-- normal color -->

它仍然不起作用。 :(编辑:显然,波纹色隐藏在背景色后面,所以几乎看不到。但是人们可以在背景中看到它的一丝(如果我color_view_pressed设置为深红色)。即使不这样,我有什么办法可以做到这一点吗?我已经尝试了所有可能的解决方案。不知何故,它与ListView完美配合。我不明白怎么回事。

在用于项目的布局的根ViewGroup中添加前景属性而不是背景(您已经设置):

android:foreground="?android:attr/selectableItemBackground"

并设置以下属性:

android:clickable="true"
android:focusable="true"

这对我有用

您可以有 2 个具有背景的ViewGroup - 顶部的波纹,并且具有蓝色背景的整个布局是孩子的。

最新更新