BRVAH 2.x升级3.x注意

BRVAH2.x升级3.x注意

helper.setGone(id, isGone) isGone参数含义与2.x相反 ,true为不可见,false为可见

使用setList 替换原来setNewData方法,分页加载,第一页使用setList,第二页使用addData

原来使用BaseMultiItemQuickAdapter做可以展开的多级列表,现在统一换成BaseNodeAdapter+BaseNodeProvider+BaseNode方式

RecyclerView外层嵌套NestedScrollView会导致动画失效以及view复用失效,所以如非必要,不要使用NestedScrollView嵌套RecyclerView,可以使用header或者 CoordinatorLayout嵌套

需要自动加载更多功能,adapter需要实现LoadMoreModule接口

adapter数据加载,构造Adapter的时候传递数据源,以后都只使用这一个数据源,使用setList和addData不会更新数据源,并会自动更新数据源,无需额外的集合操作

分页加载代码

mCircleItemAdapter.getLoadMoreModule().setOnLoadMoreListener(new com.chad.library.adapter.base.listener.OnLoadMoreListener() {
            @Override
            public void onLoadMore() {
                page++;
                getDataBatch();
            }
        });
        mCircleItemAdapter.getLoadMoreModule().setAutoLoadMore(true);
        //当自动加载开启,同时数据不满一屏时,是否继续执行自动加载更多(默认为true)
        mCircleItemAdapter.getLoadMoreModule().setEnableLoadMoreIfNotFullPage(false);




smart_refresh.setOnRefreshListener(new OnRefreshListener() {
            @Override
            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
                // 这里的作用是防止下拉刷新的时候还可以上拉加载
                mCircleItemAdapter.getLoadMoreModule().setEnableLoadMore(false);
                page = 1;
                getDataBatch();
            }
        });


if (pageInfo.isFirstPage()) {
                    //如果是加载的第一页数据,用 setData()
                    mAdapter.setList(data);
                } else {
                    //不是第一页,则用add
                    mAdapter.addData(data);
                }

                if (data.size() < PAGE_SIZE) {
                    //如果不够一页,显示没有更多数据布局
                    mAdapter.getLoadMoreModule().loadMoreEnd();
                    Tips.show("no more data");
                } else {
                    mAdapter.getLoadMoreModule().loadMoreComplete();
                }


你可能感兴趣的:(BRVAH 2.x升级3.x注意)