RecyclerView.Adapter StateRestorationPolicy 如何工作?

问题描述

我在我的活动的 onCreate 方法中异步填充我的适配器。当活动重新配置时,它会破坏当前活动并创建新的活动实例。因此,我之前的清单将丢失。我必须再次用新数据填充我的适配器。因此,当适配器恢复其状态时,我的列表可能尚未填充。我认为这就是为什么当活动重新配置发生时适配器总是进入起始位置的原因。我可能错误地使用了这个。有人帮助我如何做到这一点。这是我的代码

override fun onCreate(savedInstanceState: Bundle?) {
    .
    .
    .
    myAdapter = Mylistadapter(myList,...)
    myAdapter.stateRestorationPolicy = StateRestorationPolicy.PREVENT_WHEN_EMPTY
    .
    .
    .
    connectToDatabase(myList)
}
.
.
.
override fun ondistroy() {
    .
    .
    .
    disconnectFromDatabase()
}

解决方法

我和你有同样的问题。虽然有些人可以让它工作,但对我来说却不是。很多人说不靠谱。相反,我将适配器的数据缓存在 ViewModel 中,一切正常

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...