为什么paging 3.0一开始就加载2页

Kaa*_* S. 5 android kotlin android-paging

我正在尝试跟踪无限滚动。我已经在 pagingsource 中实现了跟踪。当我打开页面时,分页加载 2 页。甚至无需滚动,跟踪请求就会发送。如何停止分页加载 2 页?

ExamplePagingSource: PagingSource<String, UIItem>() {

private var scrollDepth = 0

override suspend fun load(params: LoadParams<String>): LoadResult<String, UIItem> {
    val pageKey = params.key ?: ""

    return try {
        val exampleData = getExampleData()

        
        scrollDepth++
        trackScroll()
        

        LoadResult.Page(
            data = items,
            prevKey = if (isFirstPage) null else pageKey,
            nextKey = exampleData.pageKey.ifEmpty { null }
        )
    } catch (e: Exception) {
        Timber.e(e, "Error")
        LoadResult.Error(e)
    }
}
Run Code Online (Sandbox Code Playgroud)

更新 我用 prefetchDistance 解决了它

Kaa*_* S. 12

我用 prefetchDistance 解决了这个问题。如果将预取距离设置为 2。分页库会在倒数第二项调用 api。必须在 PagingConfig 中设置

Pager(
    config = PagingConfig(
        pageSize = PAGE_SIZE,
        prefetchDistance = PREFETCH_DISTANCE
    ),
    pagingSourceFactory = ::pagingSource
)
Run Code Online (Sandbox Code Playgroud)