RecyclerView在smoothScrollToPosition(0)后滚动到末尾

6

我有一个带有LinearLayoutManagerVertical,非反向)的RecyclerView。当我插入或移动项目到0位置时,会调用这样的方法:

private void scrollToStart() {
        int firstVisiblePosition = ((LinearLayoutManager) recentList.getLayoutManager()).findFirstCompletelyVisibleItemPosition();
        boolean notScrolling = recentList.getScrollState() == RecyclerView.SCROLL_STATE_IDLE;
        if (firstVisiblePosition < 2 && notScrolling) {
            recentList.scrollToPosition(0);
        }
}

但有时它会平滑地滚动到列表的末端。

(我在一些应用程序中看到过这种行为,例如Instagram。它看起来像列表向上滚动,然后开始向相反方向移动。)

如果我使用简单的scrollToPosition替换smoothScrollToPosition,它就会像应该的那样工作。

如何防止这种滚动?

1个回答

0
在我的情况下,事实上物品是可回收的,这就是它的原因。尝试将 this.setIsRecyclable(false); 放置在您的 ViewHolder 中。

但这会减慢RecyclerView的速度。 - VasyaFromRussia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接