max*_*max 8 android android-mvvm android-livedata android-paging android-paging-library
我使用android分页库实现了分页。ViewModel 返回 aLiveData<PagedList<MyObject>>并且我观察到在我设置适配器的片段中一切正常,除了当我想检查列表的大小时始终为 0。
viewModel.getSearchResults().observe(this, mList -> {
adapter.submitList(mList);
Log.e("Count", String.valueOf(mList.size()));
});
Run Code Online (Sandbox Code Playgroud)
其中 mList 是 PagedList<MyObject>
Rod*_*roz 13
如果您查看从文档中加载数据,PagedList您会注意到以下内容:
如果您使用
LivePagedListBuilder获取LiveData<PagedList>,它将在后台线程上为您初始化 PagedLists。
此外,可变性和快照声明如下:
PagedList 在加载或准备从其数据源加载时是可变的。当加载成功时,一个可变的 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) {}
})
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2544 次 |
| 最近记录: |