1

我在嵌套滚动视图(位于 CoordinatorLayout 内)中使用了 Recycler View:

        <android.support.v4.widget.NestedScrollView
            android:id="@+id/scroll"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/sections_recycler_view_linearlayout"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical" />

            </RelativeLayout>

        </android.support.v4.widget.NestedScrollView>

在上述回收器的适配器中,我使用 setNestedScrollingEnabled 作为 false 以编程方式添加了子回收器视图。

我的问题是:当我滚动子回收器时,一旦它的滚动完成,父回收器就会滚动到顶部,就好像我再次设置它的适配器一样。我没有添加任何代码来通知适配器或滚动到最顶部的回收站项目或再次设置适配器。我无法弄清楚这种奇怪行为的原因。

任何帮助将不胜感激.. !!!

4

3 回答 3

1

添加到您的父回收站视图:

android:descendantFocusability="blocksDescendants"
于 2017-10-02T17:48:52.277 回答
0

在收到来自服务器的数据之前,我一直在子回收站视图中显示进度条。一旦我得到数据,我就会填充它。我曾为行数为 2 的子回收器使用交错适配器,因此在填充数据后,我的父回收器的高度正在变化。

我将 setHasFixedSize(false) 用于父回收器视图,因为它的高度正在变化,直到现在我还没有再次看到这个问题。

于 2016-12-11T06:45:06.270 回答
0

简单,添加

android:fillViewport="true"

到你的 NestedScrollview,你会很高兴的。

于 2017-09-14T05:05:30.753 回答