`ScaffoldMessenger` — это инструмент, который позволяет отображать `SnackBar`, `MaterialBanner` и другие сообщения **вне текущего контекста `Scaffold`**. Он решает проблему, когда `Scaffold.of(context)` не может быть вызван до сборки `Scaffold`.
Рекомендуется использовать `ScaffoldMessenger` вместо `Scaffold.of(context).showSnackBar(...)`, особенно если вы вызываете его вне `Scaffold` (например, после навигации или из виджетов верхнего уровня).
Если у вас несколько `Scaffold` в навигационном стеке, `ScaffoldMessenger.of(context)` управляет только ближайшим `ScaffoldMessenger`, а не автоматически текущим `Scaffold`.
Методы
showSnackBar(SnackBar snackBar) (void)— обязательный
Показывает `SnackBar` в текущем `Scaffold`. Автоматически скрывает предыдущий, если он всё ещё отображается.
clearSnackBars() (void)
Скрывает все текущие `SnackBar`, не дожидаясь окончания их отображения.
removeCurrentSnackBar({bool withAnimation = true}) (void)
Удаляет текущий `SnackBar`, если он есть.
showMaterialBanner(MaterialBanner banner) (void)
Показывает баннер в верхней части приложения.
hideCurrentMaterialBanner({bool withAnimation = true}) (void)
Скрывает текущий `MaterialBanner` с анимацией или без.