加载更多控件

<in.srain.cube.views.ptr.PtrClassicFrameLayout xmlns:cube_ptr="http://schemas.android.com/apk/res-auto"
    android:id="@+id/ptr_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    cube_ptr:ptr_keep_header_when_refresh="true"
    cube_ptr:ptr_pull_to_fresh="false"
    cube_ptr:ptr_ratio_of_header_height_to_refresh="1.2"
    cube_ptr:ptr_resistance="1.7">

<android.support.v7.widget.RecyclerView
    android:id="@+id/rlv_invoice_record"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>


</in.srain.cube.views.ptr.PtrClassicFrameLayout>
 
 

//判断网络是否连接
private void netWork(final  int i){
    Retrofit retrofit = RetrofitUtils.retrofitutild(this, Interface.BASEURL2);
    BaseApi baseApi = retrofit.create(BaseApi.class);

    HashMap map = new HashMap();
    map.put("page",i);
    map.put("pageSize",20);

    String token = SharePreferenceUtils.getToken(InvoiceRecordActivity.this);

    if(TextUtils.isEmpty(token)){

        return;
    }else{

        Call<InvoiceRecordBean> call = baseApi.getSelectInvoiceOrders(token, map);
        call.enqueue(new Callback<InvoiceRecordBean>() {
            @Override
            public void onResponse(Call<InvoiceRecordBean> call, Response<InvoiceRecordBean> response) {

                InvoiceRecordBean recordBean = response.body();
                if(recordBean!= null && recordBean.getCode() == 0){
                    if(recordBean.getData() != null && recordBean.getData().getDataList()!= null && recordBean.getData().getDataList().size()>0){

                        totalPage = recordBean.getData().getTotalPage();
                        if (i > 1) {

                            list.addAll(recordBean.getData().getDataList());
                            showData(list);

                        } else {
                            list.clear();
                            list.addAll(recordBean.getData().getDataList());
                            showData(list);
                        }
                    }
                }else if(recordBean.getCode() == 1){

                    TokenDialogUtils.tokenDialog(InvoiceRecordActivity.this);
                }else{
                    ToastUtil.showToast(InvoiceRecordActivity.this,recordBean.getError().toString());
                }

            }
            @Override
            public void onFailure(Call<InvoiceRecordBean> call, Throwable t) {
                Toast.makeText(InvoiceRecordActivity.this, "网络无连接", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

//展示数据
private void showData(List<InvoiceRecordBean.DataBean.DataListBean> list){
    mRlvInvoiceRecord.setLayoutManager(new LinearLayoutManager(this));
    invoiceRecordAdapter  = new InvoiceRecordAdapter(this);
    invoiceRecordAdapter.setData(list);
    mRlvInvoiceRecord.setAdapter(invoiceRecordAdapter);
    //添加分割线
   /* mRlvInvoiceRecord.addItemDecoration(new RecycleViewDivider(
            mContext, LinearLayoutManager.VERTICAL, 10, getResources().getColor(R.color.divide_gray_color)));*/

    mRlvInvoiceRecord.addItemDecoration(new RecycleViewDivider(
            InvoiceRecordActivity.this, LinearLayoutManager.VERTICAL, 2, getResources().getColor(R.color.line_color)));
    //加载更多
    mPtrFrame.setPtrHandler(new PtrDefaultHandler2() {
        @Override
        public void onLoadMoreBegin(final PtrFrameLayout frame) {
            mPtrFrame.postDelayed(new Runnable() {
                @Override
                public void run() {
                    page++;
                    if (page <= totalPage) {
                        netWork(page);
                    } else {
                        Toast.makeText(InvoiceRecordActivity.this, "没有更多了", Toast.LENGTH_SHORT).show();
                    }

                    frame.refreshComplete();
                }
            }, 1000);
        }

        @Override
        public void onRefreshBegin(final PtrFrameLayout frame) {
            mPtrFrame.postDelayed(new Runnable() {
                @Override
                public void run() {

                    netWork(1);
                    frame.refreshComplete();
                }
            }, 0);
        }

        @Override
        public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {
            boolean result = super.checkCanDoRefresh(frame, content, header);
            // return super.checkCanDoRefresh(frame, content, header);
            return result;
        }
    });
 
 



注意在使用 Ptr这个控件的时候,item只能包裹在一个布局当中,否则报错

猜你喜欢

转载自blog.csdn.net/qq_41238313/article/details/80341060
今日推荐