Android --- 加载更多,刷新的逻辑----

惯例:先上图后说话,谢谢各位伙伴的支持! 有你们是我的福分!

Android --- 加载更多,刷新的逻辑----_第1张图片Android --- 加载更多,刷新的逻辑----_第2张图片Android --- 加载更多,刷新的逻辑----_第3张图片

每日一言:在我的平凡世界里,我就是不平凡。

                                                                                                                             逻辑图

Android --- 加载更多,刷新的逻辑----_第4张图片



/**
 * author: 贾旭飞([email protected])
* version: 1.0.0
* since: 2017-09-07 00:06
*

*

* 订单列表 *

*/ public class NewOrderListActivity extends BaseActivity implements BaseQuickAdapter.RequestLoadMoreListener, SwipeRefreshLayout.OnRefreshListener { private NewOrderListPresenter newOrderListPresenter; private NewOrderListAdapter newOrderListAdapter; private RecyclerView rvOrderList; private SwipeRefreshLayout swipeLayout; private View notDataView;//空界面 private View errorView;//错误界面 ImageView btnBack; TextView tvTitle; private List orderStateList; private String startTime = ""; private String endTime = ""; private int page = 1; private int mCurrentCounter = 0;//当前 private int TOTAL_COUNTER = 0; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_new_order_list); initView(); initAdapter(); initData(); } /** * 初始化试图 */ private void initView() { swipeLayout = $(R.id.swipeLayout); rvOrderList = $(R.id.rv_order_list); swipeLayout.setOnRefreshListener(this); swipeLayout.setColorSchemeColors(Color.rgb(47, 223, 189)); rvOrderList.setLayoutManager(new LinearLayoutManager(this)); notDataView = getLayoutInflater().inflate(R.layout.loadpage_empty, (ViewGroup) rvOrderList.getParent(), false); errorView = getLayoutInflater().inflate(R.layout.error_view, (ViewGroup) rvOrderList.getParent(), false); btnBack = $(R.id.btn_back); tvTitle = $(R.id.tv_title); tvTitle.setText("我的订单"); btnBack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { finish(); } }); } /** * 初始化数据 */ private void initData() { orderStateList = new ArrayList<>(); orderStateList.add(PaymentOrder.ORDER_STATUS_WAIT_FOR_PAY);//待付款 orderStateList.add(PaymentOrder.ORDER_STATUS_WAIT_FOR_RECEIVE);//已发货 orderStateList.add(PaymentOrder.ORDER_STATUS_WAIT_FOR_SEND);//待发货 orderStateList.add(PaymentOrder.ORDER_STATUS_PAYING);//支付中 newOrderListPresenter = new NewOrderListPresenter(this); newOrderListAdapter.setEmptyView(R.layout.loading_view, (ViewGroup) rvOrderList.getParent()); startLoadData(); } /** * 初始化适配器 */ private void initAdapter() { newOrderListAdapter = new NewOrderListAdapter(); rvOrderList.setAdapter(newOrderListAdapter); newOrderListAdapter.setOnLoadMoreListener(this, rvOrderList); newOrderListAdapter.openLoadAnimation(BaseQuickAdapter.SLIDEIN_LEFT); } /** * 试图绑定数据 * * @param orderList 订单列表 * @param totalNum 总数 */ public void bindResponseToView(List orderList, int totalNum) { Log.e("1111111", "size=" + orderList.size()); if (orderList.size() == 0) { newOrderListAdapter.setEmptyView(notDataView); } else { TOTAL_COUNTER = totalNum; mCurrentCounter = newOrderListAdapter.getData().size(); if (page==1) { newOrderListAdapter.setNewData(orderList); swipeLayout.setRefreshing(false); } else { newOrderListAdapter.addData(orderList); newOrderListAdapter.loadMoreComplete(); } } } @Override public void onRefresh() { newOrderListAdapter.setEnableLoadMore(false); page = 1; startLoadData(); } @Override public void onLoadMoreRequested() { swipeLayout.setRefreshing(false); if (newOrderListAdapter.getData().size() < 20) { newOrderListAdapter.loadMoreEnd(); } else { if (mCurrentCounter >= TOTAL_COUNTER) { newOrderListAdapter.loadMoreEnd(); } else { page++; startLoadData(); } rvOrderList.setEnabled(true); } } /** * 开始加载数据 */ private void startLoadData() { newOrderListPresenter.getPaymentOrderList(orderStateList, startTime, endTime, page); } }

框架引入

先在 build.gradle(Project:XXXX) 的 repositories 添加:

    allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

然后在 build.gradle(Module:app) 的 dependencies 添加:

    dependencies {
            compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.22'
    }

在此感谢, BRVAH是一个强大的RecyclerAdapter框架。




你可能感兴趣的:(Android)