RecyclerView item not showing ripples/touch feedback when the item has a checkbox

家住魔仙堡 提交于 2019-12-01 05:10:17

In your onClick method (assuming in your callback), make sure you do not call notifyDataSetChanged() after notifyItemChanged(position).

notifyDataSetChanged() will conflict with those default ripple effects.

new recyclerAdapter.ClickListener() {
    @Override
    public void onClick(int position) {

        ... awesome item onClick code ...

        notifyItemChanged(position);
        //notifyDataSetChanged(); <//--- Causes the no ripple bug
    }
};

You use android:background="?android:attr/selectableItemBackground" but you should use android:foreground="?android:attr/selectableItemBackground"

I think you are looking for ripple effect.I can give you basic idea, Just create one xml file (ripple.xml) in drawable & write this code inside

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

    </item>
</ripple>

& just write two line in your another xml file in which you have declared recyclerview elements.

android:background="@drawable/ripple"
android:clickable="true"

Like in my case i am having only TextView and in parent tag i am declaring these two lines

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/ripple"
    android:clickable="true"
   >

<TextView
    android:id="@+id/textView_Username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="30sp"
    android:textColor="@color/colorPrimary"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="10dp"
    />
</LinearLayout>

Finally the result:

See this video

https://www.youtube.com/watch?v=qvVkDb7DqCk

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!