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