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

时间:2016-02-11 15:07:09

标签: android android-recyclerview recycler-adapter ripple rippledrawable

我的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 -->

所以我将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 -->

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

2 个答案:

答案 0 :(得分:4)

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

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

并设置这些属性:

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

这对我有用

答案 1 :(得分:1)

你可以拥有2个ViewGroup个有背景的东西 - 涟漪的顶部一个,而且整个布局都是蓝色背景的孩子。