您好,欢迎来到花图问答。
搜索
您的当前位置:首页Android分页加载逻辑处理

Android分页加载逻辑处理

来源:花图问答

其实这个处理是在服务器就已经处理了的,但是在客户端还是要做一些简单的业务处理。比如设置本次要获取的页码,并判断是否是最后一页,页码的加一等等操作。这里通过Iyuba和Pinpar两个项目进行一个简单的总结。

一、Iyuba方式

这里,只需要在请求的时候发送一个请求的“页码”的参数即可,服务器返回上一页、下一页、当前页、第一页和尾页,可以通过判断尾页和当前页的大小来确定下一次可以请求的页码。

Iyuba的服务器端返回

二、Pinpar方式

这里在请求的时候要指定当前的最大id,并指定要取的页码数和每页的记录个数。这里只要取到最大id之后,向服务器请求即可。

Pinpar的服务器请求标准

感觉Iyuba方式要更好一些。二的方式如何提示已经没有更多数据?判断返回的数据是否为空?

在客户端,对于下拉操作和上拉操作是否要分成两个独立的操作?

上拉的时候只需要请求第一页或最大id为0的数据即可;

对于Iyuba方式,首先判断返回的尾页和当前请求的页码是否相等,如果不等说明不是最后一页,将请求的页码加1;如果尾页和当前请求的页码相等,或者尾页为0时,说明都是到了最后一页。在使用上拉加载时,先通过标志判断是否是最后一页,如果是则不处理;否则,再将加1之后的页码作为参数进行请求,同时根据返回的值处理是否为尾页的标志。

只不过这里在下拉的时候,请求的页码一定是1,同时指定的下一页的页码一定是2(这里也可以用reqPageNum++处理);对于上拉操作,请求的页码应该是reqPageNum参数,同时指定的下一页的页码一定要用reqPageNum处理。

对于Pinpar方式,下拉的时候传入maxId=0,并将返回的结果中最大的id赋给maxId,下次请求的时候传入maxId。是否为最后一页只能通过返回的结果集是否为空来判断。

感觉上,上拉和下拉本就是一个操作,合理的控制reqPageNum参数和判断请求是否到达尾部的标志,合理处理逻辑。

Copyright © 2019- huatuowenda.com 版权所有 湘ICP备2023022495号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务