我有RecyclerView
和LinearLayoutManager
(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中