Если вы посмотрите на Загрузка данных из 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) {}
})
})