4

Мне нужен простой эффект пульсации в элементах RecyclerView, которые имеют цвет фона. Так как они имеют цвет фона (синий) набор уже, я не могу установить фон на вытяжке/ripple.xml:Получить эффект пульсации в RecyclerView с элементами, содержащими другой цвет фона

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

Он по-прежнему не работает. :( EDIT: Видимо, цвет пульсации скрывается за цветом фона, поэтому его почти не видно, но можно увидеть его оттенок в фоновом режиме (если я установил color_view_pressed в темно-красный цвет) Есть ли способ, который я могу достичь, даже в противном случае? Я пробовал все возможные решения там. Как-то он отлично работал с ListView. Я не понимаю, как это сделать.

ответ

1

У вас может быть 2 ViewGroup s, который будет иметь фон - верхний для рябь, и это ребенок, чтобы иметь весь макет с синим фоном.

+0

Это не работает тоже. Получается фоновый цвет, но эффект пульсации вообще не наблюдается. :( – Sid

4

В корне ViewGroup макета, используемого для элементы добавить атрибут переднего плана вместо фона (что вы уже установили):

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

, а также установить эти атрибуты:

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

Это работало для меня

+0

Итак, я установил передний план корневой ViewGroup (то есть макет, используемый для отдельного элемента RecyclerView), на это и на задний план до нужного цвета, но он по-прежнему не работает. Цвет фона правильный, но эффект пульсации не появляется. :( – Sid

+0

@Sid при использовании этого, удалите попытку с помощью ripple.xml, он больше не нужен – fillobotto

+0

Да, я удалил свою попытку с помощью ripple.xml. – Sid