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++

猜你喜欢

转载自blog.csdn.net/lx121xl/article/details/83746593