分页加载中由已加载的条目数判断下一页页码


private int pageStart = 1 ;//分页请求传入的页码
private final  int pageLimit = 8 ;//每次请求的条目数

//请求接口,使用了Rxjava,isRest代表是刷新请求还是加载更多
private void loadData ( boolean isReset) {
if (isReset){
pageStart = 1 ;
}

@Override
public void onNext (CloudQueryResult cloudQueryResult) {
if (getView()== null ){
return;
}
if (cloudQueryResult.getData() != null || cloudQueryResult.getData().size() > 0 ) {//请求成功,并且该页有数据返回,加一
pageStart ++ ;
    }
原写法,界面中定一个全局变量 pageStart,用于记录点击加载更多应该请求的页码,存在难以维护各种情况下的pageStart的值的问题,因为一下拉pageStart就重置为1了,所以考虑使用分页加载中由已加载的条目数判断下一页页码,使用RecycleView的getItemCount作为请求的条目数。总条目除以每页数向上取整+1可以作为下次加载更多请求的条目数。 :( int )Math. ceil ( adapter .getItemCount()/ 8.0 )+ 1

java中的三种取整函数

  1. 舍掉小数取整:Math.floor(3.5)=3.0
  2. 四舍五入取整:Math.rint(3.5)=4.0
  3. 进位取整:Math.ceil(3.1)=4 .0
注意区分i/8和i/8.0点值:
Math.Ceil(9/8)=1;Math.Ceil(9/8.0)=2;




最终实现:

cloudQuery. PageIndex =isReset? 1 :( int )Math. ceil ( adapter .getItemCount()/ 8.0 )+ 1 ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值