Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Recycler view click animation

I'm trying to add some click animation as shown here to my recycler view but unsuccessfully. Here's some of my code.

Inside my Activity

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
    ItemOffsetDecoration itemDecoration = new ItemOffsetDecoration(this, R.dimen.card_item_offset);
    mRecyclerView.addItemDecoration(itemDecoration);

    mLayoutManager = new LinearLayoutManager(this);
    mRecyclerView.setLayoutManager(mLayoutManager);

    mAdapter = new CustomAdapter(this);
    mRecyclerView.setAdapter(mAdapter);
}

Inside my ViewHolder

public CustomViewHolder(View itemView) {
    super(itemView);
    this.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            /* on click stuff here */
        }
    });
}

Inside my CardView.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_loading"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    card_view:cardCornerRadius="4dp"
    android:clickable="true"
    android:background="?android:attr/selectableItemBackground">

    <TextView
        android:id="@+id/card_message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</android.support.v7.widget.CardView>

Not sure where the problem is, but thank you in advance for helping =)

like image 206
Gabriel Brito Avatar asked Nov 09 '16 14:11

Gabriel Brito


1 Answers

this is called Ripple effect you are trying with background instead foreground

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

you can also make it custom too

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/colorcode">

    <item
        android:id="@android:id/mask"
        android:drawable="@color/colorcode" />
</ripple>

to support in older versions you can do like that

<?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/colorcode" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/colorcode" />
        </shape>
    </item>
</selector>
like image 137
Aditya Vyas-Lakhan Avatar answered Oct 31 '22 08:10

Aditya Vyas-Lakhan