How to disable RecyclerView scrolling? How to disable RecyclerView scrolling? android android

How to disable RecyclerView scrolling?


You should override the layoutManager of your recycleView for this. This way it will only disable scrolling, none of the other functionalities. You will still be able to handle click or any other touch events. For example:-

Original:

public class CustomGridLayoutManager extends LinearLayoutManager {    private boolean isScrollEnabled = true;    public CustomGridLayoutManager(Context context) {        super(context);    }    public void setScrollEnabled(boolean flag) {        this.isScrollEnabled = flag;    }    @Override    public boolean canScrollVertically() {        //Similarly you can customize "canScrollHorizontally()" for managing horizontal scroll        return isScrollEnabled && super.canScrollVertically();    }}

Here using "isScrollEnabled" flag you can enable/disable scrolling functionality of your recycle-view temporarily.

Also:

Simple override your existing implementation to disable scrolling and allow clicking.

linearLayoutManager = new LinearLayoutManager(context) {    @Override    public boolean canScrollVertically() {        return false;    }};

In Kotlin:

object : LinearLayoutManager(this){ override fun canScrollVertically(): Boolean { return false } }


The real answer is

recyclerView.setNestedScrollingEnabled(false);

More info in documentation


The REAL REAL answer is:For API 21 and above:

No java code needed.You can set android:nestedScrollingEnabled="false"in xml:

<android.support.v7.widget.RecyclerView     android:id="@+id/recycler"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:clipToPadding="true"     android:nestedScrollingEnabled="false"     tools:listitem="@layout/adapter_favorite_place">