问题描述
我有带有数据的回收器视图,当它在底部使用此代码 findLastCompletelyVisibleItemPosition()
时,它将加载新数据。我的 init 数据和我的加载数据是相同的功能,只是在 recyclerview 滚动到最底部后添加更改正文请求。我的问题是当它加载新数据时它会滚动回顶部。我如何将它放在同一个地方而不是向后滚动?
我已经尝试在加载数据函数中实现这一点
val recyclerViewState =list_view_history_program.layoutManager?.onSaveInstanceState()
if (loadMore > 0) {
listadapter.notifyItemRangeChanged(loadMoreCount,listadapter.itemCount,programNames)
listadapter.notifyDataSetChanged()
list_view_history_program.layoutManager?.onRestoreInstanceState(recyclerViewState)
list_view_history_program.scrollToPosition(loadMoreCount)
}
但它仍然向后滚动。请帮忙
解决方法
您已经使用了 notifyItemRangeChanged,然后使用了 notifyDataSetChanged。删除listAdapter.notifyDataSetChanged()
在 itemList 数组中添加项目后使用以下代码
注意:但您必须第一次调用适配器,然后第二次使用以下代码
adapter.notifyItemInserted(itemList.size());