更新后如何使回收站视图不滚动回顶部

问题描述

我有带有数据的回收器视图,当它在底部使用此代码 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());

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...