2

Android 的新 PagedListAdapter 是一个很棒的库,用于处理数据列表的分页。它对我来说效果很好,只是你如何让它像 Android 架构的 ViewModel 一样在配置更改(例如屏幕旋转)中幸存下来?

4

1 回答 1

1

适配器依赖于活动上下文,因此它不会在配置更改后继续存在。相反,列表将由 ViewModel 配置,它会在配置更改后继续存在并相应地更新 UI。你应该有类似下面的东西。在您的活动中onCreate

val adapter = CheeseAdapter()
cheeseList.adapter = adapter
// Subscribe the adapter to the ViewModel, so the items in the adapter are refreshed
// when the list changes
viewModel.allCheeses.observe(this, Observer(adapter::setList))

在你的viewModel

val allCheeses = dao.allCheesesByName().create(0,
        PagedList.Config.Builder()
                .setPageSize(PAGE_SIZE)
                .setEnablePlaceholders(ENABLE_PLACEHOLDERS)
                .build())!!

我建议你看看这个谷歌样本

于 2017-11-21T18:52:47.737 回答