Класс ScaffoldMessenger
Класс ScaffoldMessenger оборачивает MaterialApp и держит очередь сообщений.
Экземпляр ищут через
of,
SnackBar показывают через showSnackBar,
баннер - через showMaterialBanner.
Синтаксис
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('abcde')),
)
Методы
| Метод | Описание |
|---|---|
of |
Возвращает ScaffoldMessengerState из context.
|
showSnackBar |
Показывает SnackBar внизу экрана.
|
showMaterialBanner |
Показывает MaterialBanner через messenger.
|
Пример
Давайте выведем SnackBar:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Builder(
builder: (context) {
return ElevatedButton(
onPressed: () {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('abcde')),
);
},
child: Text('12345'),
);
},
),
),
),
),
);
}
Внизу появится полоска с 'abcde'.
Пример
Давайте покажем MaterialBanner:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('abcde')),
body: Center(
child: Builder(
builder: (context) {
return ElevatedButton(
onPressed: () {
ScaffoldMessenger.of(context).showMaterialBanner(
MaterialBanner(content: Text('12345')),
);
},
child: Text('abcde'),
);
},
),
),
),
),
);
}
Под AppBar выедет баннер с текстом '12345'.
Смотрите также
-
виджет
SnackBar,
который передают вshowSnackBar -
виджет
MaterialBanner,
который показывают через messenger -
виджет
Scaffold,
под которым рисуют сообщения -
метод
hideCurrentSnackBar,
который скрывает текущийSnackBar