BRVAH(BaseRecyclerViewAdapterHelper)上拉下载

一.参数说明

BRVAH(BaseRecyclerViewAdapterHelper)上拉下载_第1张图片

BRVAH(BaseRecyclerViewAdapterHelper)上拉下载_第2张图片

二.加载自定义布局

2.1java

public final class CustomLoadMoreView extends LoadMoreView {

    @Override 
    public int getLayoutId() {
        return R.layout.view_load_more;
    }

    /**
     * 如果返回true,数据全部加载完毕后会隐藏加载更多
     * 如果返回false,数据全部加载完毕后会显示getLoadEndViewId()布局
     */
    @Override 
    public boolean isLoadEndGone() {
        return true;
    }

    @Override 
    protected int getLoadingViewId() {
        return R.id.load_more_loading_view;
    }

    @Override 
    protected int getLoadFailViewId() {
        return R.id.load_more_load_fail_view;
    }

    /**
     * isLoadEndGone()为true,可以返回0
     * isLoadEndGone()为false,不能返回0
     */
    @Override 
    protected int getLoadEndViewId() {
        return 0;
    }
}

2.2xml




    

        

        
    

    


        

    


2.3注意

其实,仔细研读官方的方案会发现,在设置完成适配器之后应当默认调用, mAdapter.loadMoreEnd(true); mAdapter.loadMoreComplete(); ,亦或者是 serviceSeachAdapter.loadMoreFail(); 以此来最终完成整个加载动作
查看代码发现,BaseQuickAdapter 通过 bindToRecyclerView() 方法,绑定RecyclerView ———> 获取到layoutmanager———>监听条目填充变化——>判断是最后一个条目——>开启监听,(判断是不是loadmore状态和enableLoadMore,是通过mAdapter.loadMoreEnd(true); mAdapter.loadMoreComplete(); , serviceSeachAdapter.loadMoreFail(); 三个方法结束loadmore状态的)产生回调


三.上拉加载更多代码实现

BRVAH(BaseRecyclerViewAdapterHelper)上拉下载_第3张图片

BRVAH(BaseRecyclerViewAdapterHelper)上拉下载_第4张图片

四.其他参数说明

4.1setOnLoadMoreListener

BRVAH(BaseRecyclerViewAdapterHelper)上拉下载_第5张图片

mQuickAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
            @Override public void onLoadMoreRequested() {
                mRecyclerView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        if (mCurrentCounter >= TOTAL_COUNTER) {
                            //数据全部加载完毕
                            mQuickAdapter.loadMoreEnd();
                        } else {
                            if (isErr) {
                                //成功获取更多数据
                                mQuickAdapter.addData(DataServer.getSampleData(PAGE_SIZE));
                                mCurrentCounter = mQuickAdapter.getData().size();
                                mQuickAdapter.loadMoreComplete();
                            } else {
                                //获取更多数据失败
                                isErr = true;
                                Toast.makeText(PullToRefreshUseActivity.this, R.string.network_err, Toast.LENGTH_LONG).show();
                                mQuickAdapter.loadMoreFail();

                            }
                        }
                    }

                }, delayMillis);
            }
        }, mReyclerView);

 

你可能感兴趣的:(RecyclerView)