当我在位置0上有第一个回收器视图项,然后假设在位置0上插入10个项,使第一个到位置10,回收器视图滚动到位置10。 如何禁用此功能,使回收器视图停留在顶部?
我有一个可能的答案在下面,但它有缺点。 有了这个方法,recyclerview确实会滚动到顶部,但只有在滚动到结尾之后才会滚动到顶部。 有点烦人。 有谁知道如何让它保持在顶端而不走到最后?
一种解决方法是在回收器视图适配器上注册AdapterDataObserver,重写onItemRangeInserted方法,如下面的代码所示。 当某个东西插入到位置0时,它会自动触发layoutManager滚动到列表的开始。
有了这个方法,recyclerview确实会滚动到顶部,但只有在滚动到结尾之后才会滚动到顶部。 有点烦人。 有谁知道如何让它保持在顶端而不走到最后?
adapter?.registerAdapterDataObserver(object: RecyclerView.AdapterDataObserver() {
override fun onItemRangeInserted(positionStart: Int, itemCount: Int) {
if (positionStart == 0) layoutManager?.scrollToPosition(0)
}
})