代码之家  ›  专栏  ›  技术社区  ›  Jacky Coolheart

如何使架构的PagedListAdapter在配置更改中幸存?

  •  2
  • Jacky Coolheart  · 技术社区  · 6 年前

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Damia Fuentes    6 年前

    适配器取决于活动上下文,因此无法在配置更改后继续使用。取而代之的是,该列表将由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())!!
    

    我建议你看看这个 google sample