如果您查看从文档中加载数据PagedList
,您会注意到以下内容:
如果您使用LivePagedListBuilder
获取LiveData<PagedList>
,它将在后台线程上为您初始化 PagedLists 。
此外,可变性和快照声明如下:
PagedList 在加载时是可变的,或者准备从其 DataSource 加载。随着加载成功,可变的 PagedList 将通过主线程上的 Runnables 更新。您可以使用PagedList.Callback
. (请注意,PagedListAdapter
将收听这些以向 RecyclerView 发送有关更新/更改的信号)。
如果您想监听事件onInserted
,onChanged
或者onRemoved
您可以执行以下操作:
viewModel.observableData.observe(viewLifecycleOwner, Observer { pagedList ->
adapter.submitList(pagedList)
pagedList.addWeakCallback(null, object: PagedList.Callback() {
override fun onChanged(position: Int, count: Int) {}
override fun onInserted(position: Int, count: Int) {
println("count: $count")
}
override fun onRemoved(position: Int, count: Int) {}
})
})