如果您RealmResults<T>
直接使用 Realm,则没有理由使用分页,因为其中的元素RealmResults
是惰性求值的,并且在您调用.get(i)
.
这意味着,在您直接索引元素之前,查询不会执行和评估元素。这意味着,它们不在内存中。该RealmResults<T>
列表实际上并不包含元素,它只知道如何找到它们。
因此,LIMIT
Realm 中没有。
请注意,如果我没记错的话,重新评估两个RealmResults
未返回的findAllSorted
可能有不同的顺序(如果发生删除)。如果无论如何顺序都必须相同,则考虑一个rank
属性,并按顺序排序findAllSorted("rank", Sort.ASCENDING)
。
如果你真的想要分页,你应该有排名参数,然后你可以创建一个查询
realm.where(SomeClass.class)
.greaterThanOrEqualTo("rank", pageSize*pageIndex + 0)
.lessThan(SomeClassFields.RANK, pageSize*pageIndex + pageSize)
.findAllSorted(SomeClassFields.RANK, Sort.ASCENDING);
此外,您应该考虑RealmRecyclerViewAdapter
从这里改用:
compile 'io.realm:android-adapters:1.3.0' // for Realm 0.89.0 to Realm 2.3.0
或者
compile 'io.realm:android-adapters:2.1.0' // for Realm 3.0.0+
或者
compile 'io.realm:android-adapters:3.0.0' // for Realm 5.0.0+
句柄为您“RealmRecyclerViewAdapter
加载新数据”,除了设置初始RealmResults
.
一旦与分页架构组件正确集成,我实际上必须更改此答案,谁知道?我在这里做了一个实验,你可以看看它是否适合你。