<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只能包裹在一个布局当中,否则报错