使用RecyclerView加载网络图片时出现no adapter attached skipping layout

时间:2021-02-22 21:11:13
    今天在写项目中使用RecyclerView加载网络图片中遇到这个问题,第一次刚进入该Activity中不会出现,当我刷新时就会出现这个问题,
我的问题的表现形式为刷新后上方布局一片空白,但是通过手势上拉的时候数据又会出来。

纠结了挺久之后发现是因为recyclerView.setLayoutManager()与recyclerView.setAdapter()的问题,发现这两个必须都要写上才能正常加载数据。

因为之前的写法recyclerView.setLayoutManager()是写在初始化View中的。
    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_photo_detail);
initView();//初始化view
initData();//获取网络数据
refresh();//刷新
}

private void initView() {
recyclerView = (RecyclerView)
findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(...);
}
    private void refresh() {
initData();
}
    因为这样写的话第一次进来的时候会执行initView()中的recyclerView.setLayoutManager(...)和initData()中的recyclerView.setAdapter(adpter),
所以数据能正常显示,但是当我刷新的时候,它只会执行到获取数据的initData()方法中的setAdapter(),并不会执行到setLayoutManager(...),
因此就会出现此问题,只需要将2个set写在一起,
使其每次能同时执行到即可。

(以上内容纯属个人理解,如有错误欢迎指正,谢谢!)