当前位置:网站首页 / android / 正文

[android] recyclerView 使用 notifyDataSetChanged无效分析和解决方法

时间:2018年07月31日 | 作者 : lovean | 分类 : android | 浏览: 1138次 | 评论 0

最近准备研究一下android 的mvvm模式,做一个图片展示的app,其中图片展示部分采用了瀑布流的显示方法。

用了recyclerView来实现瀑布流。

Observer<ResponseBean<List<Album>>> observer = new Observer<ResponseBean<List<Album>>>() {
        @Override
        public void onChanged(@Nullable ResponseBean<List<Album>> listResponseBean) {
            if (listResponseBean == null || listResponseBean.getCode() != 200) {
                return;
            }

            if (listResponseBean.getData() == null || listResponseBean.getData().size() == 0) {
                return;
            }
            albums = listResponseBean.getData();
//            albums.clear();
//            albums.addAll(listResponseBean.getData());

            adapter.notifyDataSetChanged();
            if (swipeRefreshLayout.isRefreshing()){
                swipeRefreshLayout.setRefreshing(false);
            }
        }
    };

字段代码是通过Observer的onchange来监听数据的变化,然后赋值给albums,调用notifyDataSetChanged()来改变数据显示。

进来发现是因为对象不是同一个,所以数据内更新,然后采用了注释里面的那两句话重新赋值,就有效了。

猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

友情链接