Диалог AlertDialog в Flutter
Подтверждение удаления или важное сообщение
удобно показывать поверх текущего экрана.
Функция
showDialog
создаёт полупрозрачный фон и виджет в
центре - чаще всего
AlertDialog.
Окно AlertDialog принимает title,
content и кнопки в actions.
Любая кнопка закрывает окно вызовом
Navigator.pop(context)
с контекста, который передал builder
диалога:
import 'package:flutter/material.dart';
void main() {
runApp(const MaterialApp(home: DialogDemoPage()));
}
class DialogDemoPage extends StatelessWidget {
const DialogDemoPage({super.key});
Future<void> confirmExit(BuildContext context) async {
await showDialog<void>(
context: context,
builder: (dialogContext) {
return AlertDialog(
title: const Text('Exit'),
content: const Text('Close the app?'),
actions: [
TextButton(
onPressed: () {
Navigator.pop(dialogContext);
},
child: const Text('Cancel'),
),
TextButton(
onPressed: () {
Navigator.pop(dialogContext);
debugPrint('User agreed');
},
child: const Text('Yes'),
),
],
);
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Dialog')),
body: Center(
child: ElevatedButton(
onPressed: () => confirmExit(context),
child: const Text('Show question'),
),
),
);
}
}
Сделайте диалог «Clear the list?» с
кнопками 'No' и 'Yes'.
По «Yes» выводите в консоль
'List cleared' и закрывайте окно.