如何防止RecyclerView在布局计算后自动滚动

时间:2019-04-18 13:55:47

标签: android android-recyclerview

我有一个带有水平线性布局管理器的回收器视图,当我第一次滚动它时,它具有自动滚动到第一项的奇怪行为。您是否有解决办法的想法?

我已经尝试使用StaggeredLinearLayout,还尝试使用宽度和高度的固定值,我尝试使用android:descendantFocusability =“ blocksDescendants”也没有成功。因此,我没有解决该问题的想法。

<android.support.v7.widget.RecyclerView
            android:id="@+id/bigItemsRecyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="@dimen/margin_small"
            android:layout_marginBottom="@dimen/margin_normal"
            android:clipToPadding="false"
            android:nestedScrollingEnabled="false"
            app:paddingInner="@dimen/margin_normal" />

我不希望它自动滚动,它使用带有固定项目的适配器,所以我不需要在数据更改时调用通知,当我滚动到下一个项目时它只会发生一次。自动滚动后,它停止发生。

1 个答案:

答案 0 :(得分:0)

从上面的信息很难知道问题是什么,但是在滚动时(如果我没看错的话)调用notifyDataSetChanged()听起来像是您不想做的事情。

例如,如果滚动到项目1并调用notifyDataSetChanged。它将触发刷新,并且您的recyclerView将滚动回到第一项。