我有RecyclerViewLinearLayoutManager(Vertical,未反转)。当我将项目插入或移动到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)中看到过这种行为。它看起来像列表滚动到顶部,然后开始朝相反的方向移动。)

如果我将smoothScrollToPosition替换为简单的scrollToPosition,它的行为应达到预期。

如何防止这种滚动?

最佳答案

就我而言,事实是可回收物品是造成这种情况的原因。尝试将this.setIsRecyclable(false);放置在ViewHolder中

10-08 18:05