Я хотел бы реализовать новую Snackbar, включенную в последнюю библиотеку поддержки дизайна, но способ, которым она предлагается, кажется противоречивым для моего, и я предполагаю, что многие другие используют.
Когда пользователь делает важное действие, я хочу разрешить им отменить его через Snackbar, но, похоже, нет способа обнаружить, когда он отклоняется, чтобы выполнить действие. Для меня имеет смысл сделать это следующим образом:
- Пользователь выполняет действие.
- Показать Snackbar и обновить интерфейс, как если бы действие было завершено (т.е. кажется, что данные отправляются в базу данных, но на самом деле еще нет).
- Если пользователь нажал "отменить" , верните изменения пользовательского интерфейса. Если нет, когда Snackbar будет уволен, он отправит данные.
Но поскольку я не вижу доступного OnDismissListener, мне пришлось бы:
- Пользователь выполняет действие.
- Немедленно отправьте информацию в базу данных и обновите интерфейс.
- Если пользователь нажимает "отменить" , отправьте другой вызов в базу данных, чтобы удалить только что добавленные данные и отменить изменения пользовательского интерфейса.
Мне бы очень хотелось, чтобы вам не пришлось делать два вызова в базе данных и просто отправлять их, когда приложение знает, что оно безопасно (пользователь избегал нажатия "отменить" ). Я замечаю, что некоторые из них реализованы в сторонней библиотеке через EventListener, но я действительно хотел бы придерживаться библиотеки Google.