android - RecyclerView with RoomDatabase an ViewModel
问题描述
I'm showing my recycler view like this:
parrafoLeyViewModel.allParrafosLey.observe(this, Observer {
recyclerview_lectura_ley.layoutManager = LinearLayoutManager(this)
adapterListar = AdapterListarLey(this, it, this)
recyclerview_lectura_ley.adapter = adapterListar
})
So when I insert data into the RoomDatabase my recyclerview restarts and goes back to the start
GlobalScope.launch {
db.parrafoLeyDao().updateComentarioLey(
ComentarioLey(
idParrfo,
spTipoComentario.selectedItem.toString(),
etInserteComentario.text.toString()
)
)
}
What I want is that when I insert the data it remains in the same position. I am using ViewModel
解决方案
您没有正确地将数据传递给Recycler View
请确保您的数据源包含在 a 中Live Data
,然后将此实时数据传递给您的 Recycler View Adapter。
这种方式Recycler View
只会重新绘制更改的项目,而不是整个列表。因为 Recycler View 可以很好地处理实时数据。
应排除任何Recycler View
会导致列表重新绘制的方法。例如notifyDataSetChanged()
方法。
而是打电话submitList()
最后请阅读以下文档:
推荐阅读
- sas - Sas 宏:对数组中的每个元素运行宏
- microsoft-graph-api - 错误: createdDateTime 在 /beta/users 中为空
- javascript - 函数式编程接口js
- ios - 是否可以通过提供 iCloud 凭据的任何应用程序/工具从 iCloud(公共、共享、私有)中获取所有备份数据而无需越狱?
- javascript - 关联性和优先级是特定于平台的标准或实现吗?
- swift - @3x 设备上的 UIView 帧不正确
- javascript - 在 Highcharts 中使用 pointPadding 更改条形宽度
- laravel - 未找到基表或视图:1146 表
- vba - Excel 2013 无法解析 Outlook 收件人
- java - 从表中更新一列并插入新行。SQLite,Java