Виджет AlertDialog
Виджет AlertDialog открывают через
showDialog.
Заголовок передают в title,
основной текст - в content,
кнопки - в actions, обычно TextButton.
Адаптивный вариант даёт
adaptive.
Синтаксис
AlertDialog(
title: Text('abcde'),
content: Text('12345'),
actions: [
TextButton(onPressed: () {}, child: Text('OK')),
],
)
Параметры
| Параметр | Описание |
|---|---|
title |
Заголовок окна. |
content |
Основной текст или виджет. |
actions |
Кнопки внизу диалога. |
Методы
| Метод | Описание |
|---|---|
adaptive |
Строит диалог под iOS или Material.
|
Пример
Давайте откроем AlertDialog:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: DialogPage()));
}
class DialogPage extends StatelessWidget
{
const DialogPage({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
showDialog(
context: context,
builder: (ctx) {
return AlertDialog(
title: Text('abcde'),
content: Text('12345'),
);
},
);
},
child: Text('abcde'),
),
),
);
}
}
Поверх экрана появится окно с заголовком и текстом.
Пример
Давайте закроем диалог кнопкой OK:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: DialogPage2()));
}
class DialogPage2 extends StatelessWidget
{
const DialogPage2({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
showDialog(
context: context,
builder: (ctx) {
return AlertDialog(
title: Text('12345'),
actions: [
TextButton(
onPressed: () => Navigator.pop(ctx),
child: Text('abcde'),
),
],
);
},
);
},
child: Text('12345'),
),
),
);
}
}
Кнопка 'abcde' вызовет Navigator.pop и закроет окно.
Смотрите также
-
функция
showDialog,
которой показываютAlertDialog -
виджет
SimpleDialog,
который выводит списокSimpleDialogOption -
функция
showAdaptiveDialog,
которая выбирает стиль платформы -
виджет
Dialog,
который задаёт форму окна без готового содержимого