Android Firebase实时数据库,带有recyclerview ondatachange

时间:2020-04-15 05:43:22

标签: java android firebase-realtime-database

您好,我正在建立一个聊天屏幕,在其中按照日期将聊天分组,例如WhatsApp,但为了对数据进行分组,我需要反向渲染数据,因此我在采用者和上使用了 setReverseLayout Collections.reverse(myChats)用于数据反向操作,还用于 setStackFromEnd ,以便在收到新消息时它会停留在底部,但不幸的是,在加载聊天记录时它不会滚动到底部,也不会滚动到弹出新消息时显示在底部。谁能告诉我我的代码出了什么问题

我的代码

 //Init Varibles
ArrayList<Message> myChats = new ArrayList<Message>();
private RecyclerView recyclerView;
private RecyclerView.Adapter mAdapter;
private LinearLayoutManager layoutManager;
private Boolean isUpdate = false; 


// OnCreate
recyclerView = (RecyclerView) findViewById(R.id.messages);
recyclerView.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
layoutManager.setReverseLayout(true);
layoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(layoutManager);
mAdapter = new MessageAdoptor(myChats,getApplicationContext());
recyclerView.setAdapter(mAdapter);


// On Data Change
myChats.clear();
myChats.addAll(myChatsTemp);
Collections.reverse(myChats);
mAdapter.notifyDataSetChanged();

解决方案

 recyclerView.smoothScrollToPosition(0);

0 个答案:

没有答案