Я пытаюсь использовать PagedListAdapter
для пользовательского RecyclerView
, (ссылка здесь).
В моей ViewModel
при просмотре данных, полученных с помощью Observer(adapter::submitList)
элемент не отображается.
При отладке этой строки:
productViewModel.allProducts.observe(this, Observer(adapter::submitList))
Я видел, что у объекта TiledPagedList
есть мои элементы/см. Рисунок → Рисунок отладки
В моем классе репозитория:
fun getProductsFromDb(): LiveData<PagedList<Product>> {
return LivePagedListBuilder(productDao.getProducts(), 20).build()
}
В моем классе ViewModel
:
allProducts = repository.getProducts()
В моем классе Activity
:
adapter = CardStackAdapter()
productViewModel = ViewModelProviders.of(this).get(ProductViewModel::class.java)
productViewModel.allProducts.observe(this, Observer(adapter::submitList))
productViewModel.allProducts.value?.dataSource?.invalidate()
//productViewModel .allProducts.observe(this, PagedList(adapter::submitList))
Как правильно применить элементы, извлеченные из моей базы данных, в мой recyclerView
? (Примените то, что я вижу к объекту TiledPagedList
)
Я нашел решение. Моя ошибка состояла в том, чтобы переопределить getItemCount() в моем классе адаптера и получить размер списка в параметре, который не использовался.