Android 为什么LoadParams.requestedLoadSize会将指定的页面大小返回给LivePagedListBuilder乘以3?
我正在使用以下方法创建Android 为什么LoadParams.requestedLoadSize会将指定的页面大小返回给LivePagedListBuilder乘以3?,android,pagination,kotlin,android-architecture-components,Android,Pagination,Kotlin,Android Architecture Components,我正在使用以下方法创建页面列表: LivePagedListBuilder(数据源工厂,20) 在我的PageKeyedDataSource实现中,loadParams.requestedLoadSize返回60。我尝试使用其他数字,似乎loadParams.requestedLoadSize总是返回我指定的页面大小乘以三 有人知道为什么会这样吗 我尝试使用其他数字,似乎loadParams.requestedLoadSize总是返回我指定的页面大小三次 这是因为loadInitial上的par
页面列表
:
LivePagedListBuilder(数据源工厂,20)
在我的PageKeyedDataSource
实现中,loadParams.requestedLoadSize
返回60。我尝试使用其他数字,似乎loadParams.requestedLoadSize
总是返回我指定的页面大小乘以三
有人知道为什么会这样吗
我尝试使用其他数字,似乎loadParams.requestedLoadSize总是返回我指定的页面大小三次
这是因为loadInitial
上的params.requestedLoadSize
不同
在LivePagedListBuilder的第二个参数上传递的是pageSize,而不是loadInitial
LivePagedListBuilder(dataSourceFactory, 20)
我在RxPagedListBuilder上注意到了相同的行为
RxPagedListBuilder(dataSourceFactory, 20)
正如您所猜测的,loadInitial大小是pageSize的三倍
如果要设置loadInitial,必须将PagedList.Config
传递给LivedPagedListBuilder或RxPagedListBuilder的第二个参数
RxPagedListBuilder(dataSourceFactory,
PagedList.Config.Builder()
.setInitialLoadSizeHint(INITIAL_LOAD_SIZE)
.setPageSize(PAGE_SIZE)
.build()
).buildObservable()
这是
PagedList
的默认行为。如果检查的源代码是否为loadInitial
,页面大小将乘以DEFAULT\u INITIAL\u page\u乘数,该乘数的值为3
,在loadInitial
之后,所有调用都将使用params.requestedLoadSize
value,因为默认值PagedList.Config
强制-如果您不喜欢,请使用LivePagedListBuilder(Factory dataSourceFactory,PagedList.Config配置)
it@pskink你说得对。原来PagedList.Config
有setPageSize
和setInitialLoadSizeHint
,后者被用作初始页面大小。很好的选择,但我认为它是违反直觉的,让它不同于作为默认值的通知页面大小。无论如何,非常感谢。你介意把你的评论作为一个答案发布,这样我就可以接受了吗?哦,发布一个带有详细额外信息的自我回答。我想知道pagesize和InitialidaSizeHint有什么用。即使我将页面大小设置为10,并在第一次调用时从服务器发送20个数据,它也会给我一组20个。那么这个页面大小是用来做什么的呢?谢谢,我还试着调试为什么第一次加载时这个数字会增加3倍。