美文网首页Android
Android分页加载逻辑处理

Android分页加载逻辑处理

作者: DarkAndroid | 来源:发表于2016-05-17 14:31 被阅读254次

    其实这个处理是在服务器就已经处理了的,但是在客户端还是要做一些简单的业务处理。比如设置本次要获取的页码,并判断是否是最后一页,页码的加一等等操作。这里通过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参数和判断请求是否到达尾部的标志,合理处理逻辑。

    相关文章

      网友评论

        本文标题:Android分页加载逻辑处理

        本文链接:https://www.haomeiwen.com/subject/uyqokttx.html