Android RecyclerView更新项目从后台监听器和移动顶部



我正在做一个即时消息项目。有一个消息处理程序后台服务,它正在侦听传入消息,通过greenrobot的事件总线为订阅"活动"创建事件,活动刷新RecyclerView以获取更新的消息。RecyclerView仅显示用户的最新消息。

我的问题是如何更新并移动到卡片视图或列表项的顶部。我目前的解决方案是在收到消息时清除并添加所有消息。

您可以在这里找到消息流的实现。

RecyclerView.Adapter类以与BaseAdapter相同的方式在ArrayList中存储数据。如果要在某个位置添加项,只需将对象插入指定索引处的数据即可。例如,您可以在ChatHistoryRecyclerViewAdapter中创建这样的方法。
public void addItemAtIndex(int index, ChatHistory chatHistory){
   mChatHistoryList.add(index, chatHistory);
   notifyDataSetChanged();
}

然后,如果你想在你要调用的列表的最顶部插入一个项目,

mAdapter.addItemAtIndex(0, object);

如果需要添加多个项,可以考虑删除notifyDataSetChanged()调用,并且只在对基础数据集进行所有更新后才调用它。

最新更新