Android 如何正确处理刷卡删除和撤消操作?
在从回收器视图中滑动项目时,我正在执行撤消以删除 所有的逻辑都正常工作,问题是只有当用户没有按snackbar上的undo时,我才会删除该项 这意味着从用户从列表中刷取该项目到该项目实际从数据库中删除之间有很短的时间 在那段时间里,我仍然拥有onChildDraw方法中的红色背景和图标,只有当项目被实际删除时,它才会消失 我添加了一个屏幕截图来澄清问题: 我如何解决这个问题Android 如何正确处理刷卡删除和撤消操作?,android,kotlin,android-recyclerview,itemtouchhelper,Android,Kotlin,Android Recyclerview,Itemtouchhelper,在从回收器视图中滑动项目时,我正在执行撤消以删除 所有的逻辑都正常工作,问题是只有当用户没有按snackbar上的undo时,我才会删除该项 这意味着从用户从列表中刷取该项目到该项目实际从数据库中删除之间有很短的时间 在那段时间里,我仍然拥有onChildDraw方法中的红色背景和图标,只有当项目被实际删除时,它才会消失 我添加了一个屏幕截图来澄清问题: 我如何解决这个问题 private fun showUndoSnackbar( position: Int,
private fun showUndoSnackbar(
position: Int,
itemToDelete: Article
) {
val snackbar =
Snackbar.make(binding.root, "Item was removed from the list", Snackbar.LENGTH_LONG)
snackbar.setAction("UNDO") {
uiCommunicationListener.onResponseReceived("Undo action", UIComponentType.Toast)
recyclerViewAdapter.notifyItemChanged(position)
}
snackbar.addCallback(object : Snackbar.Callback() {
override fun onDismissed(transientBottomBar: Snackbar?, event: Int) {
if (event == DISMISS_EVENT_TIMEOUT) {
viewModel.delete(itemToDelete)
}
}
})
snackbar.show()
}