1. 程式人生 > >Android 列表下拉重新整理上拉載入更多分頁功能

Android 列表下拉重新整理上拉載入更多分頁功能

手機app 列表頁很常用,當資料特別多的時候,為了更好地使用者體驗,需要進行分頁處理。那麼分頁功能怎麼做呢?
看如下核心程式碼

    if (mPage == 1 && mList != null) {
            mList.clear();
        }
        if (mList == null) {
            mList = deliveryOrderDetialListModels.getList();

            deliveryOrderDetialListAdapter = new DeliveryOrderDetailListAdapter(this, this.mList, this, notPut, mUserType);

            deliveryOrderDetailListview.setAdapter(deliveryOrderDetialListAdapter);
        } else {
            mList.addAll(deliveryOrderDetialListModels.getList());

            deliveryOrderDetialListAdapter.notifyDataSetChanged();
        }

        deliveryOrderDetailListview.stopLoadMore();

        deliveryOrderDetailListview.stopRefresh(true);

當網路請求獲取資料成功之後 首先判斷 當前mPage是不是等於1 如果是等於1 並且當前集合資料不能空的話,說明是下拉重新整理操作,這需要把結合mlist 資料清空一下,若果,mPage不是1 mList不等於null 代表是上拉載入更多操作,只需要將網路請求mPage頁的資料獲取到裝進mList集合中,當mList等於null mPage等於1代表是一開頁面直接將第一個頁資料 裝進mList頁面 然後呼叫 setAdapter方法。

一共有三種情況。
1.一開啟頁面的時候mPage肯定等於 1 mList等於null
2.上拉載入mPage不等於1,mList不等於null
3.下拉重新整理 mPage等於1.mList不等於null

下拉重新整理的時候將mPage置為1 重新呼叫網路請求方法,上拉載入更多的時候將mPage++

   @Override
    public void onRefresh() {
        mPage = 1;
        getDeliveryOrderListData(materialSearchView.getSearchQuery(), false, mPage + "");
    }

   @Override
    public void onLoadMore() {
        if (mSplitPage.getCurrent_page_number() < mSplitPage.getNumber_of_pages()) {
            mPage++;
            getDeliveryOrderListData(materialSearchView.getSearchQuery(), false, mPage + "");
        } else {
            deliveryOrderDetailListview.stopLoadMore(getString(R.string.period));
        }
    }

載入更多的時候判斷下 當前頁有沒有超過總頁數 如果沒有超過就把mPage++