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参数和判断请求是否到达尾部的标志,合理处理逻辑。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容