ViewModel:
val eventDataFactory = AppDatabase.getInstance(context)!!.eventDao().getEventList()
val pagedListConfig = PagedList.Config.Builder()
.setEnablePlaceholders(false)
.setInitialLoadSizeHint(10)
.setPrefetchDistance(2)
.setPageSize(10).build()
eventListResponse = LivePagedListBuilder(eventDataFactory, pagedListConfig)
.build()
fun getEventListLiveData(): LiveData<PagedList<Event>> {
return eventListResponse!!
}
Фрагмент:
viewModel.getEventListLiveData().observe(this@Fragment, Observer {
Log.d("Fragment", "eventList Update: " + it!!.size)
for (event: Event in it) {
if (event != null)
Log.d("Fragment", "EventId: " + event.eventId)
}
eventListAdapter!!.submitList(it)
})
EventDao:
@Query("SELECT * FROM event")
fun getEventList(): DataSource.Factory<Int,Event>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertAll(events: List<Event>): List<Long>
У меня есть 55 записей в моей локальной базе данных, и я предполагаю получить 10 записей на каждом свитке. Я получаю eventList Update: 10
только в первый раз, после того, как этот адаптер получает обновленное значение, но наблюдатель не запускает.
Также, когда я вставляю новое значение в базу данных, наблюдатель возвращает только первые 10 значений вместо вновь добавленного значения.