Android ListView 翻页是初学者都会碰到的问题,但是现在要实现它的方法和实例网上已经很多很多了,但是本菜鸟一直被一个问题所困扰。 是什么问题呢?咋们先来说说网页上的分页吧,比如每次分页显示是10条记录,那么客户端把要显示的页数和每页要显示的数量发送到服务器,然后服务器根据这两个参数去后来取数据,页码*页数,就是客户端请求的数据了,而客户端每次请求翻页时,每次显示的都是新的、服务器提交的一页数据。因此当前请求页之外的数据都不在显示。因此不存在数据一致性的问题。那我们再来看看手机上的翻页,还是上面的例子,curPageIndex代表当前请求的页码,perPageCount代表每页要显示的数量,假如我还是每次请求10条记录,第一次提交第一页的时候,手机上获得了10条记录,操作的人在滑动到第十条记录时,客户端又向服务器请求第二页,那么正常情况下应该是第11~20条记录,但是问题从此开始了,假如服务器上的数据(假如是共享数据,其他用户也可以操作)被其他用户插入一条,而且按照排序规则是在第1~10记录之间的,那么这时候服务器取的记录虽然还是按照它所理解的11~20条记录,但实际上第11条记录在客户端那边已经存在了,因此客户端获取数据并加载后,发现第10条记录与第11条记录重复了。 实际上导致这种情况的原因在于三个地方 1、客户端的分页不是类似网页上的纯正分页,而是不断的加载新的数据的同时,老的数据在同一屏上仍旧显示; 2、数据不是客户端的,是共享的,也就是说是可以多个用户同时操作的; 3、有排序规则在,导致新的数据可能插入到之前的老数据中间;
此问题已解决
解决思路:每页分20张图,第一页出来20张,然后把第20张的那张图片id取出来,
然后把这个id放到你分页的开始那里,再做下一次的分页,
1---20
id--(id+20)
这个问题解决了,在你分页的时候,别人上传图片,你下拉的时候会看到重复图片