alicx / LoadMoreRecyclerView

业务发开中的一个demo,RecyclerView实现,支持下拉刷新,上拉自动加载,瀑布流及线性流切换
Apache License 2.0
91 stars 49 forks source link

调用RecyclerView.Adapter的notifyDataSetChanged没反应的解决办法 #5

Open lazy-ape opened 8 years ago

lazy-ape commented 8 years ago

因为LoadMoreRecyclerView内部对adapter又进行了封装,所以在调用原来的adapter的notifyDataChange方法的时候界面并不会刷新,解决办法是:在LoadMoreRecyclerView.AutoLoadAdapter类的构造方法中添加对原adapter的监听,代码如下:


 public AutoLoadAdapter(RecyclerView.Adapter adapter) {
            mInternalAdapter = adapter;
            mIsHeaderEnable = false;
            mInternalAdapter.registerAdapterDataObserver(new AdapterDataObserver() {
                @Override
                public void onChanged() {
                     notifyDataSetChanged();
                }
            });
        }
alicx commented 7 years ago

其实这个是通过开放在loadMoreRecyclerview. notifyMoreFinish方法进行数据刷新的,与正常使用的recyclerView直接通过adapter的notify 不同,是有点反人类了

最终我们项目中用是对这个版本进行了改造过的,目前github上的是初版,如果引入项目使用的话可能还是需要自己再改造过,这边其实是提供一个思路为目的的~