假设有一个简单的场景:
user
表,用于存储用户详细信息user_images
,将图像路径存储在image_path
字段中。 RecyclerView
中显示了一个用户列表,用户可以滑动以删除行。适配器是ListAdapter
,数据来自Room,LiveData
我在想的工作流程是这样的:
ListAdapter
中重新添加该项目并更新recyclerview。如果用户未按“撤消”,并且超时后小吃被取消,请从user
,user_images
中删除行,并从与{{1 }} ...
user_images
...
问题是使用ListAdapter。如您所知,它使用DiffCallBack来管理视图更新,并且调用image_path
不会触发任何更新,因为它接收到相同的列表。 (ListAdapter not updating item in reyclerview)
因此,为了能够删除项目,我需要:
override fun onSwiped(...){
val deletedItem = listAdapter.currentList.get(index)
//REMOVE FROM THE ADAPTER HERE
val snack = Snackbar.make(...)
snack.setAction(...){
//RE-ADD TO ADAPTER HERE
}
snack.addCallback(...){
override fun onDismissed(...){
//do the actual deletes
}
}
}
作为adapter.submitList(list)
updatebleList currentList
Mutable
再次提交如您所见,为了正确提交,创建了大量列表。 有没有更好/更简单的方法来实现这一目标?