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

tom*_*mas 5 android android-room android-architecture-components android-jetpack android-paging

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

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

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

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

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

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