【问题标题】:RecyclerView scrolls to end after smoothScrollToPosition(0)SmoothScrollToPosition(0) 后 RecyclerView 滚动到结束
【发布时间】:2015-12-02 12:48:49
【问题描述】:

我有RecyclerViewLinearLayoutManagerVertical,未倒置)。当我将项目插入或移动到 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,它的行为应该是这样。

如何防止这种滚动?

【问题讨论】:

    标签: android android-recyclerview


    【解决方案1】:

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

    【讨论】:

    • 但这会减慢 RecyclerView
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多