logo

ScaffoldMessenger

flutter

material.dart

`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` с анимацией или без.