Ripple effect over a RecyclerView item containing ImageView Ripple effect over a RecyclerView item containing ImageView android android

Ripple effect over a RecyclerView item containing ImageView


add below code to your parent layout

android:clickable="true"android:focusable="true"android:background="?attr/selectableItemBackground" 

if you want custom ripple effect add this ripple_custom.xml in your drawable-v21

<?xml version="1.0" encoding="utf-8"?><ripple xmlns:android="http://schemas.android.com/apk/res/android"    android:color="@color/colorHighlight">    <item        android:id="@android:id/mask"        android:drawable="@color/windowBackground" /></ripple>

to support older version add ripple_custom.xml in drawable

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_pressed="true">        <shape android:shape="rectangle">            <solid android:color="@color/colorHighlight" />        </shape>    </item>    <item>        <shape android:shape="rectangle">            <solid android:color="@android:color/transparent" />        </shape>    </item></selector>


Change:

android:background="?selectableItemBackground"

To:

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

And add this to your SquareImageView

android:clickable="false" 


We can wrap RecyclerView Item inside FrameLayout and set android:foreground property to it. Checkout following link for details. It works for me pretty well.