使用分页库和自定义数据源时如何更新列表项?

时间:2019-03-01 09:45:44

标签: android android-room android-architecture-components android-jetpack android-paging

我正在使用分页库,当我直接从Dao返回DataSource.Factory<Int, Data>然后像这样设置我的分页列表时,一切工作都很好

pagedList = LivePagedListBuilder(dao().getAllData(), config).build()

当我单击列表项时,它会更改,更新会议室数据库,并通过分页自动更新UI。但是我需要使用自定义数据源。所以我创建了一个,现在我要像这样设置页面列表

pagedList = LivePagedListBuilder(customDatasourceFactory, config).build()

问题在于,现在当我更新房间表中的一行时,UI不会自动更新。更改数据集时,我也在使用invalidate()。但是在这种情况下,当我只想更新一个项目时,就无法使用它,因为我的位置数据源会加载第一页,而当我位于列表的中间时,更改列表项会跳到顶部。

因此,基本上我想要实现与从Dao直接返回Datasource Factory时相同的行为,但是现在有了我自己的数据源。

0 个答案:

没有答案