使用包含另一种背景颜色的项目在 RecyclerView 中获得涟漪效果

Sid*_*Sid 4 android ripple rippledrawable android-recyclerview

我的 RecyclerView 元素需要一个简单的涟漪效果,它有一个背景颜色集。由于它们已经设置了背景颜色(蓝色),因此我无法将背景设置为 drawable/ripple.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 -->
Run Code Online (Sandbox Code Playgroud)

所以我把我的ripple.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 -->
Run Code Online (Sandbox Code Playgroud)

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

fil*_*tto 5

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

android:foreground="?android:attr/selectableItemBackground"
Run Code Online (Sandbox Code Playgroud)

并设置这些属性:

android:clickable="true"
android:focusable="true"
Run Code Online (Sandbox Code Playgroud)

这对我有用