关于下拉刷新列表控件的一些思考
这是本人第一次写博客,希望各位大牛们轻喷!
好的,进入正题。在我们编写一个app应用时,列表将会是众多控件中最为普遍的展现方式,当然一个更高级的列表还应该有上拉刷新,下拉加载更多的功能,于是就有了以下的代码:
今天我们要讨论的是在下拉加载分页数据时,很多下拉加载更多都有如下的代码:
这里乍看来似乎没有什么问题,但是我们要知道,网络请求是可能失败的,假设请求第一页的数据后,在下拉加载第二页的数据时数据请求失败,这里列表数据并不会有变动。这时,我们再一次下拉加载数据,pageNum为3,请求成功后,列表将加上第3页的数据,第2页的数据将无法得到展示。
那么,更好的做法是什么呢?请看代码:
是的,就像代码中所展示的,页数的自增需要严格的控制。更为准确的说,我们在请求分页数据时,需要当前请求有数据返回时,页码才能加一,其他情况都是不能自加的。