每当Firestore中有数据更改时,我都想更新我的回收视图项目。因此,我的活动具有以下代码:
taskViewModel.fetchedTaskLiveData.observe(
this, Observer {
if (it != null) {
todoListAdapter.setListData(it)
showRecyclerView()
}适配器内部setListData方法:
fun setListData(data: MutableList<Todo>) {
//this.todoList.clear()
this.todoList.addAll(data)
notifyDataSetChanged()
}在这种情况下,每当获取更改的列表时,Recyclerview都会复制更改的列表,并将其添加到旧列表下。
如果"this.todoList.clear()“未被注释,则list将被清除,并且数据更改时不会显示任何数据。
我尝试了所有可能的解决方案,但我认为有一部分遗漏了。卡住了很长时间。非常感谢你的各种建议。
发布于 2020-05-31 07:59:52
所以我坚持这样做,并在12小时后发现了一个小小的变化。我用forEach修改了for,这改变了游戏规则。
此外,我正在清除列表项,然后再添加项目。
todoList.clear()https://stackoverflow.com/questions/62079003
复制相似问题