当前位置: 首页 > 知识库问答 >
问题:

使用recyclerview android时,嵌套的滚动视图无法平滑滚动

国景铄
2023-03-14

我使用嵌套的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个答案

艾骏喆
2023-03-14

为了实现平滑滚动,您可以更改在“为回收器编码”视图中设置的布局管理器。我希望有帮助。

  RecyclerView.LayoutManager layoutManager = new  LinearLayoutManager(getActivity()) {
        @Override
        public boolean canScrollVertically() {
            return false;
        }
    };
    recyclerView.setLayoutManager(layoutManager);
冀景明
2023-03-14

尝试以下代码:

 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>

在此处查看链接:ScrollView内的回收器视图滚动不流畅

公良鸿禧
2023-03-14

根据Android文档Android:nestedScrollingEnabled=“false”工作,但仅在Android API级别上工作

如果您也想支持API 21以下的设备,请使用以下内容:

ViewCompat.setNestedScrollingEnabled(recyclerView, false);

 类似资料:
  • 我可以向您展示比告诉您更好的内容,所以这里是我的XML代码的结构: 因此,如您所见,我有一个,其中包含片段并支持滚动。 问题: 我有几个片段,每个片段都有自己的布局,应该在一次放纵中向下滚动。 一切都很完美,一切都可以顺利滚动,但是当我添加一个 并使用 包装它时,它无法正常工作。当我向下滚动时,将手指从屏幕上移开后,它会立即停止。 看看代码: 如果删除,它可以工作。 你知道那可能是什么吗? 谢谢你

  • 我有一个水平ScrollView,它有两个元素:CardView和水平RecycerView。所以,当用户水平滚动时,我希望这两个元素滚动。 我想有这样的东西:Goal,橙色的线是CardView,黄色的线是RecycerView。当用户滚动时,两个元素滚动,如下所示:Scrolled Goal。 现在在我的应用程序中,当用户滚动时,只有RecycerView滚动。CardView保持在他的位置。

  • 问题内容: 我正在编写一个页面,其中我只想将原始JavaScript代码用于UI,而不会受到插件或框架的干扰。 现在,我正在努力寻找一种无需使用jQuery即可平滑滚动页面的方法。 问题答案: 尝试使用此平滑滚动演示或类似的算法: 使用获取当前的最佳位置 获取元素的位置,直到要滚动到的位置: 进行for循环到达该位置,这将非常快,或者使用计时器进行平滑滚动,直到使用 安德鲁·约翰逊的原始代码:

  • 我有一个奇怪的问题与和(与设计支持库22.2.0) 使用小于的内容,我应该有一个固定的内容。然而,尝试上下滚动内容,我可以得到内容被移位,再也不会出现在自己的位置上。 这里的代码:

  • 我正在开发一个应用程序,其中我使用了AppBarLayout和CollapsingToolbarLayout以及NestedScrollView。我已经成功地实现了这一点,并且运行良好。 现在我想做的是,在嵌套滚动视图上滑动(快速向上滑动)时,它应该完全滚动到顶部。类似地,在向屏幕底部滑动(快速向下滑动)时,它必须平滑地滚动到底部。然而现在,它只能卡在中间,这使它看起来很丑。我已经尝试了许多可用的

  • 我有一个表,在某些列中有比较长的值,并且在我的Grails应用程序中为它打开了动态支架(我使用的是Grails3.3.8)。因此,在某些屏幕分辨率下,它们不在屏幕上,最右边的列最终会出现在屏幕之外--问题是,水平滚动条不会出现,所以用户甚至不知道它们在那里。把它们带回来的唯一方法是缩小--你不能用条形(因为它不在那里)或鼠标滚轮滚动;箭也不管用。 我如何修复这一点,使水平滚动条出现在内容超过屏幕大