Android Firebase ReyclView适配器在活动启动时未显示

Android Firebase ReyclView适配器在活动启动时未显示,android,firebase,firebase-realtime-database,android-recyclerview,Android,Firebase,Firebase Realtime Database,Android Recyclerview,我有一个显示消息列表的RecyclerView。活动启动时,Firebase数据库不会填充RecyclerView。但是,如果我单击“上一步”按钮或EditText,RecyclerView会正确显示所有项目。我已尝试使用notifyDataSetChanged方法手动更新它。我见过其他线程,但没有看到任何人有最终的解决方案 这是在启动过程中调用的代码 RecyclerView menu = (RecyclerView) findViewById(R.id.chat_view);

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

这是在启动过程中调用的代码

    RecyclerView menu = (RecyclerView) findViewById(R.id.chat_view);

    LinearLayoutManager manager = new LinearLayoutManager(this);
    manager.setReverseLayout(false);

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

    messageAdapter.notifyDataSetChanged();`

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

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

您需要使用
messageAdapter.notifyDataSetChanged()在indide内部,firebase请求不在其外部,因为它是异步的,所以firebase在完成之前不会阻止主线程

在将适配器设置为回收器视图之前,必须设置布局管理器。