在加载其他项目时阻止RecyclerView更改位置

时间:2015-07-10 11:18:37

标签: android chat android-recyclerview

我有一个带有setStackFromEnd(true)的RecyclerView代表聊天列表。我希望在列表滚动到顶部时加载旧消息。我设法使用onScrollListener。

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

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

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

由于

1 个答案:

答案 0 :(得分:2)

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