gpt4 book ai didi

android - 防止 RecyclerView 在加载其他项目时改变位置

转载 作者:行者123 更新时间:2023-11-29 20:37:22 25 4
gpt4 key购买 nike

我有一个带有 setStackFromEnd(true) 的 RecyclerView 代表一个聊天列表。当列表滚动到顶部时,我想加载旧消息。我设法使用 onScrollListener 做到了这一点。

但是当我使用 messages.addAll(0, aListWithNewMessages) 向适配器添加项目时(消息是适配器的数据集)并调用 notifyDataSetChanged(),新列表项目(如预期)出现在现有项目之前并将它们向下移动(不是用户想要的体验),我想静默添加它们,这样用户就不会看到它。

所以我猜测如何解决这个问题是将列表滚动到以前以某种方式保存的位置。

我知道这不是错误或意外行为,所以请帮忙解决。

谢谢

最佳答案

尝试更具体一些。不要调用 notifyDataSetChanged(),而是使用 notifyItemRangeInserted 或类似的 RecyclerView 方法。这将使 RecyclerView 知道该做什么,并提供更好的用户体验。

关于android - 防止 RecyclerView 在加载其他项目时改变位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31339453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com