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