Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗flPmWnDg 99 of 125 menu
◀ ▶

Диалог 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' и закрывайте окно.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить