I'd like to implement the new Snackbar included in the latest Design Support Library, but the way it is offered seems counter-intuitive for my, and I assume many others', use.
When the user does an important action, I want to allow them to undo it via the Snackbar, but there seems to be no way to detect when it is dismissed to do the action. It makes sense to me to do it the following way:
- User does action.
- Show Snackbar and update UI as if the action has been completed (ie it appears that data is sent to the database, but actually isn't yet).
- If user pressed "undo," revert the UI changes. If not, when the Snackbar is dismissed, it will then send the data.
But because I don't see any accessable OnDismissListener, I would therefore have to:
- User does action.
- Send info to database immediately and update UI.
- If user presses "undo," send another call to the database to remove the just-added data and revert the UI changes.
I would really like to avoid having to make the two calls to the database, and just send one when the app knows that it's safe (the user has avoided pressing "undo"). I notice there is some implementation of this in a third-party library via an EventListener, but I'd really like to stick to the Google library.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…