Firebase ReyclerView适配器未在活动开始时显示

时间:2017-06-13 21:13:36

标签: android firebase firebase-realtime-database android-recyclerview

我有一个显示消息列表的RecyclerView。活动开始时,Firebase数据库不会填充RecyclerView。但是,如果我点击后退按钮或EditText RecyclerView正确显示所有项目。我尝试使用notifyDataSetChanged方法手动更新它。我见过其他帖子,但没有看到任何人有最终解决方案。

Similar Problem

这是在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();`

2 个答案:

答案 0 :(得分:0)

这是因为您在设置布局管理器之前设置了适配器。您应该将2行的顺序更改为:

    menu.setLayoutManager(manager);
    menu.setAdapter(messageAdapter);

答案 1 :(得分:0)

你需要使用firebase请求内的messageAdapter.notifyDataSetChanged();而不是它之外的因为它是asynchrone所以firebase在完成之前不会阻塞主线程