相关疑难解决方法(0)

PagedListAdapter.submitList()在更新现有项目时表现得很奇怪

这个主题的小故事:应用程序只是在确认后用对话框更新点击行的值.在房间数据库上使用分页方案.

添加或删除项目时,将获取最新数据集并将其传递给submitList方法,然后可以看到所有更改并运行良好.

问题从那里开始,如果现有项目更新,则再次正确获取最新数据集并传递给submitList,但这次似乎没有变化.

当我调试DIFF_CALLBACK并抓住我的项目时areItemsTheSame,newHistoryoldHistory值是一样的!(怎么样!)

submitList方法中可能有任何错误?

  • 房间v.:2.1.0-alpha02
  • Paging v.:2.1.0-beta01

初始化后,observe从房间中提取列表并传递给mHistoryAdapter.submitList(it).然后,如果我更新一个项目,观察再次被触发(我在param中看到更新的值it)并传递给submitList.

不幸的是,适配器不会改变......

    mResolvedAddressViewModel = ViewModelProviders.of(this).get(ResolvedAddressViewModel::class.java)
    mResolvedAddressViewModel.getAddresses(false).observe(this, Observer {
        mHistoryAdapter.submitList(it)
    })
Run Code Online (Sandbox Code Playgroud)

所有部件

模型

@Parcelize
@Entity
data class ResolvedAddress(
    @PrimaryKey var id: String = UUID.randomUUID().toString(),
    var requestedLat: Double = 0.0,
    var requestedLon: Double = 0.0,
    var requestedAddress: String = "",
    var lat: Double,
    var lon: Double,
    var address: String,
    var country: String,
    var countryCode: String,
    var city: …
Run Code Online (Sandbox Code Playgroud)

android android-architecture-components android-paging androidx

12
推荐指数
1
解决办法
2252
查看次数