Fragment切换或回退时空白,RecyclerView提示 No adapter attached; skipping layout

当Fragment包含RecyclerView时,首次加载Fragment页面可以正常加载RecyclerView。但是当切换到别的Fragment再回退时,或者二次加载Fragment时,加载不出页面,报错:No adapter attached; skipping layout

解决:只要在onCreateView里重新设置一遍setLayoutManager、setAdapter即可

注:Fragment回退或重新加载时所有的View及与View绑定的数据、适配器Adapter等都需要重新设置,否则相关数据显示都是空的,除非复用上一次View!特别注意Adapter不要进行非空判断然后使用Adapter.notifyDataSetChanged刷新,因为View已经重新创建并可能已经回收,但Adapter还是原来的!

即在不复用View的情况下:

1
2
3
4
5
6
7
//if (mAdapter == null) {
mAdapter = new MyAdapter(mDataList);
mRecyclerView.setLayoutManager(new LinearLayoutManager(context));
mRecyclerView.setAdapter(mAdapter);
//} else {
//mAdapter.notifyDataSetChanged();
//}

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :