如何解决Android Paging 3库-用于从Room数据库中分页数据,数据更改时流程变为空
我正在尝试使用android Paging 3(版本3.0.0-SNAPSHOT)从Room数据库(无远程数据源)中分页数据。
该页面最初成功加载了数据,但是当一个新的“ Entry”添加到数据库中并且我返回此页面时,collectLatest被触发,但是没有数据被加载(“ pagingData”条目列表为空)
这是我的查询:
import math
x = float(input('x: '))
n = int(input('n: '))
s = 0
if 0.1 <= x <= 1:
for i in range(1,n + 1):
s += ((-1)**i * x**(4 * i + 3)) / (math.factorial(2*i + 1) * (4*i + 3))
print(s)
这是我的视图模型:
@Query("SELECT * FROM entry ORDER BY dateTime DESC")
fun getAll() : PagingSource<Int,Entry>
在我的片段中,我正在观察这样的数据:
val flow = Pager(
PagingConfig(pageSize = 20)
) {
entryDao.getAll()
}.flow
.cachedIn(viewModelScope)
这是我的适配器:
iewLifecycleOwner.lifecycleScope.launch {
homeViewModel.flow.collectLatest { pagingData ->
adapter.submitData(pagingData)
}
}
解决方法
我遇到了与您类似的问题,只是在添加新项目后忘了打电话给entriesAdapter.refresh()
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。