Android RecyclerView:在将第一项移动到末尾后禁用滚动到末尾

Android RecyclerView:在将第一项移动到末尾后禁用滚动到末尾,android,android-recyclerview,Android,Android Recyclerview,如果第一项移到列表的末尾,recyler将滚动到末尾。但是,如果第二个元素移到了末尾——在这种情况下,什么也不会发生。我想在第一种情况下禁用滚动以实现统一的行为。我能找到的最佳解决方案是为LayoutManager覆盖onLayoutChildren override fun onLayoutChildren( recycler: RecyclerView.Recycler?, state: RecyclerView.State?

如果第一项移到列表的末尾,recyler将滚动到末尾。但是,如果第二个元素移到了末尾——在这种情况下,什么也不会发生。我想在第一种情况下禁用滚动以实现统一的行为。

我能找到的最佳解决方案是为
LayoutManager
覆盖
onLayoutChildren

override fun onLayoutChildren(
            recycler: RecyclerView.Recycler?,
            state: RecyclerView.State?
        ) {
            val state1 = onSaveInstanceState()
            super.onLayoutChildren(recycler, state)
            onRestoreInstanceState(state1)
        }
看起来是androidx.recyclerview.widget.LinearLayoutManager#updateAnchorFromChildren中问题的根源