🧩Dialog
Что такое Dialog
Dialog
Dialog
в Flutter — это модальное окно, которое может отображать информацию или запрашивать ввод от пользователя. Диалоги используются для взаимодействия с пользователем, например, для подтверждения действий, отображения ошибок или предоставления форм для ввода данных.
Пример использования
Вот пример, как создать и отобразить Dialog
в вашем приложении:

import 'package:flutter/material.dart';
class DialogExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Dialog Example')),
body: Center(
child: ElevatedButton(
onPressed: () {
showDialog(
context: context,
builder: (BuildContext context) {
return Dialog(
backgroundColor: Colors.white,
elevation: 5,
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text('Это диалоговое окно!'),
SizedBox(height: 20),
ElevatedButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text('Закрыть'),
),
],
),
),
);
},
);
},
child: Text('Показать диалог'),
),
),
);
}
}
Как работает код
showDialog: Функция, которая отображает диалоговое окно.
builder: Возвращает виджет диалога. В этом случае это
Dialog
, который содержит текст и кнопку для закрытия.Navigator.of(context).pop(): Закрывает диалог, когда пользователь нажимает кнопку.
Все настройки Dialog
Dialog
Color? backgroundColor
Описание: Цвет фона диалога.
Пример:
backgroundColor: Colors.blue // Синий фон
double? elevation
Описание: Высота тени, создаваемой диалогом. Чем выше значение, тем более "плавающим" будет выглядеть диалог.
Пример:
elevation: 10.0 // Высокая тень
Color? shadowColor
Описание: Цвет тени, создаваемой диалогом.
Пример:
shadowColor: Colors.black54 // Полупрозрачная черная тень
Color? surfaceTintColor
Описание: Цвет наложения для фона, используемый в Material Design.
Пример:
surfaceTintColor: Colors.blueAccent // Цвет наложения
Duration insetAnimationDuration
Описание: Длительность анимации при показе диалога.
Пример:
insetAnimationDuration: Duration(milliseconds: 300) // 300 миллисекунд
Curve insetAnimationCurve
Описание: Кривая анимации при показе диалога.
Пример:
insetAnimationCurve: Curves.easeInOut // Плавная анимация
EdgeInsets? insetPadding
Описание: Отступы вокруг содержимого диалога.
Пример:
insetPadding: EdgeInsets.all(20.0) // 20 пикселей отступа
Clip? clipBehavior
Описание: Поведение обрезки содержимого диалога (например, в случае, если оно выходит за пределы формы).
Пример:
clipBehavior: Clip.hardEdge // Жесткая обрезка
ShapeBorder? shape
Описание: Форма диалога. Вы можете задать круглые углы или другие формы.
Пример:
shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(15.0), // Круглые углы )
AlignmentGeometry? alignment
Описание: Выравнивание содержимого внутри диалога.
Пример:
alignment: Alignment.center // Центрируем содержимое
Widget? child
Описание: Содержимое диалога. Обычно это виджеты, которые вы хотите отобразить (например, текст, кнопки и т.д.).
Пример:
child: Column( children: [ Text('Заголовок'), // Другие виджеты ], ) // Содержимое диалога
Заключение
Dialog
является важным элементом взаимодействия с пользователем в приложении Flutter. Он позволяет легко отображать информацию и запрашивать ввод, сохраняя при этом структуру интерфейса. Настройки Dialog
позволяют кастомизировать его внешний вид и поведение в соответствии с вашими потребностями.
Last updated