当前位置: 首页 > 知识库问答 >
问题:

如何使“回收器”视图在更新后不回滚到顶部

邴子实
2023-03-14

我有回收站视图与数据,当它在底部与此代码findLastCompletelyVisibleItemPoplace()它将加载新数据。我的问题是当它加载一个新的数据时,它将滚动回到顶部。我如何让它在同一个地方而不滚动?

我已经尝试在加载数据函数中安装了这个

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)
                }

但它仍然会向后滚动。请帮忙

共有2个答案

谢阳成
2023-03-14

在itemList数组中添加项后使用下面的代码注意:但您必须第一次调用适配器,然后第二次使用下面的代码

adapter.notifyItemInserted(itemList.size());
苍阳成
2023-03-14

您已经使用了NotefyItemRangeChanged,然后使用了NotefyDataSetChanged。删除listAdapter.notifyDataSetChanged()

 类似资料:
  • 您好,我目前正在使用Recyclerview ListAdapter,我想知道什么是等价的通知DataSetChanged或如何在添加值/记录后更新整个列表。? 我目前使用过此方法,但如果不刷新,则不会更新。 我想回到回收器视图。适配器和通知数据设置更改()。这样我的问题就解决了,你觉得怎么样?提前谢谢。

  • 我正在使用SQLite数据库填充RecyclerView。我想让RecyclerView实时更新。但我失败了。我尝试过使用“notifyDataSetChanged()”但它不起作用。 你能不能也告诉我如何通过制作一个“新适配器”来刷新回收器视图。 哪个是更好的通知DataSetChanged();或任何其他? 这是我的回收水 **编辑: adapter.update数据(列表); 在“locat

  • 在其他回收器视图中有一个回收器视图。两者都需要垂直滚动。外部回收器视图滚动正常,但内部回收器视图滚动不正常。 这是代码: ViewAdapter如下: 我尝试了以下两种回收商观点,但都无法解决问题 也尝试了这个:

  • 我刚开始在firebase工作。我设法上传了文本和图像,但是,我无法检索要显示在回收器视图中的图像,只能检索文本。我用的是毕加索依赖。我已经包括了我的主要活动。java类,该类负责显示从问题“我的适配器”中的firebase检索的回收器视图项。java类和模型类。我相信,在我将图像URI上载到firebase存储时,我可能犯了没有存储图像URI的错误,因此适配器无法检索图像位置。我想这可能是因为我

  • 我有一个水平回收视图。每个子级包含一个TextView和一个垂直RecyclerView。垂直RecyclerView的子级仅包含TextView。 垂直滚动非常平滑,但水平滚动滞后很多。我已经尝试在onBindViewHolder中使用swapAdapter,而不是setAdapter,但这并没有解决问题。我也尝试过更改数据集并调用notifyDataSetChanged(),但这也没有帮助。

  • 这是我的适配器 我想每次滚动一个项目。比如你在Instagram上看到多张照片。我怎么能那样做? 谢谢 和我的XML;