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

    今天在写项目中使用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写在一起,
    使其每次能同时执行到即可。

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

猜你喜欢

转载自blog.csdn.net/u014112893/article/details/52503975