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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值