【发布时间】:2018-12-29 23:10:19
【问题描述】:
基本上我想将消息对齐,因为它们应该在通常的聊天应用程序中。
现在消息在RecyclerView 中正确对齐。但是每当我发送新消息时,它都会将它们放在其他消息的顶部。每当我返回并再次访问该活动时,消息都会得到妥善安排(即使是最重要的)。
我只想让我发送的消息显示在底部。任何帮助将不胜感激
mLinearLayout.setReverseLayout(true);
然后:
private void loadmessage() {
mFirestore.collection("Users").orderBy("Timestamp", Query.Direction.DESCENDING).limit(10).addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot snapshots,
@Nullable FirebaseFirestoreException e) {
if (e != null) {
Log.w("TAG", "listen:error", e);
return;
}
for (DocumentChange dc : snapshots.getDocumentChanges()) {
switch (dc.getType()) {
case ADDED:
Message message = dc.getDocument().toObject(Message.class);
messageList.add(message);
mAdapter.notifyDataSetChanged();
mMessagesList.scrollToPosition(messageList.size()-10);
break;
}
}
}
});
}
【问题讨论】:
-
你在用listview来显示消息吗?
-
我正在使用 RecyclerView 来显示消息。
-
mLinearLayout.setReverseLayout(true)这将反转适配器内容。你想要吗? -
是的。反转 recyclerView 将以所需的顺序(从旧到新)显示聊天。
标签: java android firebase android-recyclerview google-cloud-firestore