【发布时间】:2019-04-05 20:04:41
【问题描述】:
我正在开发 android 聊天应用程序,我想在其中显示新到达的消息块到 recyclerview 的顶部,就像 whatsapp 一样。 whatsapp 将新消息显示到顶部并将所有其他聊天块堆栈推到底部。
我做了一些事情,我可以将新消息聊天块显示到顶部,但不能将其他聊天块向下推。
这是我的代码:
int readindex = 0;
for (int i = 0; i < messageStackDtoList.size(); i++) {
Log.d("iiiiiiiiii",messageStackDtoList.get(i).getMessageId());
Log.d("iiiiiiiiii",latestObject.getString("messageId"));
if (messageStackDtoList.get(i).getMessageId().equals(latestObject.getString("messageId"))) {
readindex = i;
Toast.makeText(getActivity(),messageStackDtoList.get(i).getMessage(),Toast.LENGTH_SHORT).show();
break;
}
}
messageStackDtoList.set(readindex, new MessageStackDto(latestObject.getString("threadId"), latestObject.getString("messageId"), latestObject.getString("sender"), latestObject.getString("senderId"), latestObject.getString("receiverId"), latestObject.getInt("messageStatus"), latestObject.getString("receiver"), latestObject.getString("message"), latestObject.getString("type"), latestObject.getString("audioUrl"), latestObject.getString("date"), outputData.getInt("newMsgCount"), null));
messageStackAdapter.notifyItemChanged(readindex);
这里计数为 11 的块是新消息堆栈隐藏/覆盖其他用户聊天,低于计数 8 的消息块是旧的。 其他聊天块被替换为具有 11 个计数的新聊天块。 我做了所有的可能性,但没有结果。
【问题讨论】:
-
messageStackDtoList 需要根据日期参数排序
-
@AMD 谢谢:) 为我工作。我在这里附上代码,这将有助于其他也在做同样事情的人。
标签: android android-recyclerview android-adapter