#android #kotlin #android-recyclerview #itemtouchhelper
#Android #kotlin #android-recyclerview #itemtouchhelper
Вопрос:
Я реализую отмену для удаления, когда элемент прокрутки из представления recycler.
Вся логика работает правильно, проблема в том, что я удаляю элемент, только если пользователь не нажал отменить на панели закусок.
Это означает, что между моментом, когда пользователь ударил элемент из списка, и моментом, когда элемент был фактически удален из базы данных, проходит короткое время.
В то время у меня все еще был красный фон и значок из метода onChildDraw, он исчез только тогда, когда элемент был фактически удален.
Я добавляю скриншот, который проясняет проблему:
Как я могу решить эту проблему?
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()
}