【问题标题】:How to make Architecture's PagedListAdapter survives configuration changes?如何使架构的 PagedListAdapter 在配置更改中幸存下来?
【发布时间】:2017-11-10 08:19:07
【问题描述】:

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

【问题讨论】:

    标签: android android-architecture-components android-livedata android-architecture android-paging


    【解决方案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())!!
    

    我建议你看看这个google sample

    【讨论】:

    • 是,但回收站视图位置丢失。从带有导航 ui 的详细信息片段返回时,我没有成功地让它保存回收器视图的状态。非常不直观的库。
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多