我正在将第 3 页与 Room 和RemoteMediator
. 我没有设置 a maxSize
,PagingConfig
这意味着无论我们滚动多远,我们都不应该丢弃页面。
fun getSearchResults(query: String): Flow<PagingData<NewsArticle>> =
Pager(
config = PagingConfig(pageSize = 50),
remoteMediator = SearchNewsRemoteMediator(query, newsArticleDatabase, newsApi),
pagingSourceFactory = { newsArticleDao.getSearchResultArticlesPaged(query) }
).flow
但是,我注意到当我滚动足够远时,Room 仍然会掉页。我在 logcat 中通过AdapterDataObserver
.
onItemRangeRemoved start: 100 count: 100 end: 199
我的问题是:这是预期的行为,还是错误,还是我这边的一些错误?如果它是预期的行为,该maxSize
属性是什么?我用一maxSize
组值观察了我的数据,但它从未从数据库中删除任何条目。
编辑:我现在还注意到,如果我们正在查看缓存的离线数据,Room 不会丢弃页面。为什么?我希望它的行为完全相同。