11

I am using Nested Scrollview to wrap the recyclerview and other button. It worked perfectly but I noticed that when I scrolled it not smooth. Please guide how to make scrolling smooth.

 <android.support.v4.widget.NestedScrollView
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:id="@+id/scrollView"
                        android:fillViewport="true">
                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:orientation="vertical">
                            <LinearLayout
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content">
                                <Button
                                    android:layout_width="match_parent"
                                    android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_action_filter"
                                    android:text="Filter"
                                    android:id="@+id/btn_filter"
                                    android:layout_margin="0dp"
                                    android:layout_weight="1"
                                    />
                                <Button
                                    android:layout_width="match_parent"
                                    android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_action_sortbyt"
                                    android:layout_margin="0dp"
                                    android:text="Sort By"
                                    android:id="@+id/btn_sortby"
                                    android:layout_weight="1"/>
                            </LinearLayout>
                            <android.support.v7.widget.RecyclerView
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:id="@+id/lastest_product_list"
                                android:nestedScrollingEnabled="false"
                                android:isScrollContainer="false">
                            </android.support.v7.widget.RecyclerView>
                        </LinearLayout>
                    </android.support.v4.widget.NestedScrollView>
Rahul Sharma
  • 2,867
  • 2
  • 27
  • 40
Angkor Empire
  • 221
  • 2
  • 5
  • 11

3 Answers3

23

As per Android documentation android:nestedScrollingEnabled="false" works, but only on Android API level >= 21.

If you want to support devices below API 21 as well, use the following:

ViewCompat.setNestedScrollingEnabled(recyclerView, false);
Idrizi.A
  • 9,819
  • 11
  • 47
  • 88
TejaDroid
  • 6,561
  • 4
  • 31
  • 38
21

try below codes:

 RecyclerView recycleView = (RecyclerView) findViewById(R.id.lastest_product_list);
    recycleView.setNestedScrollingEnabled(false);

You can modify your layout

<ScrollView>
     <LinearLayout> 
         <android.support.v7.widget.RecyclerView
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:id="@+id/lastest_product_list"
              android:nestedScrollingEnabled="false"
              android:isScrollContainer="false">
        </android.support.v7.widget.RecyclerView>
    </LinearLayout>

Check with link here : Recyclerview inside ScrollView not scrolling smoothly

Community
  • 1
  • 1
Manikandan K
  • 911
  • 9
  • 21
4

For smooth scrolling you can change the layout manager you have set in coding for recycler view. I hope it helps.

  RecyclerView.LayoutManager layoutManager = new  LinearLayoutManager(getActivity()) {
        @Override
        public boolean canScrollVertically() {
            return false;
        }
    };
    recyclerView.setLayoutManager(layoutManager);
Newbie Android
  • 389
  • 1
  • 8