如果一个列表数据是分页加载的, 就需要分页合并,即每次拉取新的一页时,将新到的一页数据合并到之前的列表数据中。
这个可以是很简单的,比如数据结构是这样的:
data {
list: []
}
Merge方法极其简单,直接将新一页数据addAll到本地的列表数据结构中。
但如果这个接口除了接口数据还捎带了一点别的东西,比如数据结构是这样的:
data {
leftAmount: “200”,
list: []
}
这个leftAmount就需要在合并的时候做额外处理了,并且还得分两种情况做不同的处理:
1, leftAmount在当前页面是一个固定的值,第一页拉取后,第二页就不再返回这个数值了,或者说返回了但是还是同一个值(server应该不会这么浪费精力)。这种情况如果本地的列表数据对象不被替换,leftAmount就总是一个正确的值,其实不必做额外处理;
2, leftAmount在每一页返回的时候都变化了,这个时候,除了将新到一页的列表addAll到本地列表数据中,还要将leftAmount从新到一页的数据结构中覆盖到本地列表数据中。