首页 > 解决方案 > 使用分页库和自定义数据源时如何更新列表项?

问题描述

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

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

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

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

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

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

标签: androidandroid-roomandroid-architecture-componentsandroid-jetpackandroid-paging

解决方案


推荐阅读