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的情况下:

//if (mAdapter == null) {
    mAdapter = new MyAdapter(mDataList);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(context));
    mRecyclerView.setAdapter(mAdapter);
//} else {
    //mAdapter.notifyDataSetChanged();
//}
上一篇 Android inflate()引发NullPointerException
下一篇 Android AES加解密(兼容Android7.0)
目录
文章列表
1 微信开发技术整理
微信开发技术整理
2
Groovy代码示例 - groovy类与脚本
Groovy代码示例 - groovy类与脚本
3
ESLint xxx is assigned a value but never used 的解决办法
ESLint xxx is assigned a value but never used 的解决办法
4
腾讯企业邮箱IMAP和SMTP
腾讯企业邮箱IMAP和SMTP
5
MySQL事务究竟有没有被隔离
MySQL事务究竟有没有被隔离
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。