Всплывающее сообщение SnackBar в Flutter
Лёгкая обратная связь - «сохранено», «ошибка
сети» - не требует отдельного экрана.
Material показывает полоску
SnackBar
над нижним краем. Вызов идёт через
ScaffoldMessenger.of(context).showSnackBar.
Объект ScaffoldMessenger привязан к
MaterialApp
и знает, какой Scaffold
сейчас активен. Текст кладут в content,
часто как Text. Кнопку действия
кладут в action как SnackBarAction.
Сообщение исчезает
само или по свайпу:
import 'package:flutter/material.dart';
void main() {
runApp(const MaterialApp(home: SnackDemoPage()));
}
class SnackDemoPage extends StatelessWidget {
const SnackDemoPage({super.key});
void showSaved(BuildContext context) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('Changes saved'),
duration: Duration(seconds: 2),
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('SnackBar')),
body: Center(
child: ElevatedButton(
onPressed: () => showSaved(context),
child: const Text('Save'),
),
),
);
}
}
По нажатию «Delete» показывайте
SnackBar с текстом 'Item deleted'
и кнопкой действия 'Undo', которая
выводит debugPrint с текстом
'Delete undone'.