我有一个显示消息列表的RecyclerView
。活动开始时,Firebase数据库不会填充RecyclerView
。但是,如果我点击后退按钮或EditText
RecyclerView
正确显示所有项目。我尝试使用notifyDataSetChanged
方法手动更新它。我见过其他帖子,但没有看到任何人有最终解决方案。
这是在onStart
期间调用的代码。
RecyclerView menu = (RecyclerView) findViewById(R.id.chat_view);
LinearLayoutManager manager = new LinearLayoutManager(this);
manager.setReverseLayout(false);
menu.setAdapter(messageAdapter);
menu.setLayoutManager(manager);
messageAdapter.notifyDataSetChanged();`
答案 0 :(得分:0)
这是因为您在设置布局管理器之前设置了适配器。您应该将2行的顺序更改为:
menu.setLayoutManager(manager);
menu.setAdapter(messageAdapter);
答案 1 :(得分:0)
你需要使用firebase请求内的messageAdapter.notifyDataSetChanged();
而不是它之外的因为它是asynchrone所以firebase在完成之前不会阻塞主线程