Всплывающее сообщение, формируемое Toast, обычно используют в стиле — создал — показал — забыл. Если сообщений много, то они ждут своей очереди, чтобы быть показанными.
Но когда ситуация меняется быстро в приложении, то сообщения могут просто не успевать за динамикой, и пользователь будет дезориентирован текущим сообщением, тогда так актуальная подсказка высветится еще не скоро.
В таких случаях стоит организовать вывод Toast через единую переменную, которая устанавливается централизованно через одну и ту же вспомогательную функцию.
В рамках активити это может выглядеть вот так:
1 2 3 4 5 6 7 |
private var currentToast: Toast? = null private fun showToast(message: String, type: Int) { currentToast?.cancel() currentToast = Toast.makeText(this, message, type) currentToast?.show() } |
Мы отменяем ранее созданный Toast, а затем выводим свежий.