如果您RealmResults<T>直接使用 Realm,则没有理由使用分页,因为其中的元素RealmResults是惰性求值的,并且在您调用.get(i).
这意味着,在您直接索引元素之前,查询不会执行和评估元素。这意味着,它们不在内存中。该RealmResults<T>列表实际上并不包含元素,它只知道如何找到它们。
因此,LIMITRealm 中没有。
请注意,如果我没记错的话,重新评估两个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.
一旦与分页架构组件正确集成,我实际上必须更改此答案,谁知道?我在这里做了一个实验,你可以看看它是否适合你。