嵌套滚动查看不能与recyclerview android顺利滚动

时间:2016-12-14 03:36:13

标签: android

我正在使用嵌套Scrollview来包装recyclerview和其他按钮。它工作得很好,但我注意到,当我滚动它不顺利。请指导如何使滚动顺畅。

 <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>

3 个答案:

答案 0 :(得分:17)

尝试以下代码:

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

您可以修改布局

<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>

点击此处链接:Recyclerview inside ScrollView not scrolling smoothly

答案 1 :(得分:16)

根据Android SDK的文档,

  如果您正在使用,

android:nestedScrollingEnabled="false"可行   Android API级别&gt; = 21。

但是现在,人们也希望从21以下的应用程序支持,所以在嵌套的scrollview内部循环滚动循环视图的另一个最佳解决方案是21以下和以上

  

ViewCompat.setNestedScrollingEnabled(recyclerView, false);

答案 2 :(得分:3)

为了平滑滚动,您可以更改在编制回收站视图时设置的布局管理器。我希望它有所帮助。

  RecyclerView.LayoutManager layoutManager = new  LinearLayoutManager(getActivity()) {
        @Override
        public boolean canScrollVertically() {
            return false;
        }
    };
    recyclerView.setLayoutManager(layoutManager);