一开始我们有listViews。作为开发人员,我们必须回收并重用视图以获得流畅的体验。
然后,来了recylclerviews。现在,所有的回收重物都是由android库本身管理的。
使用分页,可以实现无限的回收视图,在需要时加载数据。
但是我仍然面临一个无限回收的问题。如何管理适配器中的数据?
在recyclerview的大多数无限滚动实现中,新数据被附加到原始数据。这使得数据集的大小不断增加。 为什么cant数据集本身的行为与recyclerview不同并且回收其数据而不是追加? (就像一个循环队列)。
当数据集是循环队列时,如何管理项目视图的位置。是不必要的,产生的性能改善太少了?我错过了一些设计模式吗?
答案 0 :(得分:0)
可以清除已经加载的数据,但这样你就不得不加载数据,而不仅仅是#34; bottom"观点,但对于"上层"太。所以用户想要回到以前的数据,他需要再次加载这些数据,这就是问题所在。
关于通知recyclerView中更改的数据集可能会有更多工作。
您可以通过这种方式实现它,但请记住分页及其实现方式 - 例如,以SQL语句限制数据标准方式可以在每次调用时输出不同的数据,因此用户支持以前的数据可以看到其他结果!检查Twitter pagination,了解每次获得相同结果的方法之一。
优点:
缺点: