我有一个带有setStackFromEnd(true)
的RecyclerView代表聊天列表。我希望在列表滚动到顶部时加载旧消息。我设法使用onScrollListener。
但是当我使用messages.addAll(0, aListWithNewMessages)
(消息是适配器的数据集)向适配器添加项目并调用notifyDataSetChanged()
时,新的列表项(如预期的那样)出现在现有项之前并将其向下移动(不是用户想要的体验),我想静静地添加它们,这样用户就不应该看到它。
所以我对如何解决这个问题的猜测是将列表滚动到以前保存的位置。
我知道这不是错误或意外行为,所以请帮助解决它。
由于
答案 0 :(得分:2)
尝试更具体。而不是调用notifyDataSetChanged()
使用notifyItemRangeInserted
或类似的RecyclerView
方法。这将使RecyclerView
知道该做什么,并将提供更好的用户体验。