👨‍💻
Flutter
  • 👨‍💻Flutter lessons
    • 🎨Flutter ui
      • 🚵‍♂️Travel app
        • 📱1. Lesson
        • 📱2.Lesson
      • 📚Books store
      • 🧑‍⚕️Doctor app
      • 🚖Taxi app
    • 🐦Основы Flutter
      • Page 1
      • Page 2
      • 🧑‍🏫Урок 1: Основные виджеты Flutter
        • Page
        • 🧩Container()
        • 🧩AppBar()
        • 🧩Text()
        • 🧩Icon()
        • 🧩Column()
        • 🧩Row()
        • 🧩TextButton()
        • 🧩ElevatedButton()
      • 🧑‍🏫Урок 2: Создаем UI
      • 🧑‍🏫Урок 3: Создаем UI
      • 🧑‍🏫Урок 4: Создаем UI
    • 🧩Основы dart
      • 🧑‍🏫01. Переменные часть 1
      • 🧑‍🏫01. Переменные часть 2
      • 🧑‍🏫02. Функции
      • 🧑‍🏫03. Условные операторы
      • 🧑‍🏫04. List
      • 🧑‍🏫05. Map
      • 🧑‍🏫06. Class
      • 🧑‍🏫07. Наследование
      • 🧑‍🏫08. Абстракция
      • 🧑‍🏫09. Интерфейсы
      • 🧑‍🏫10. Инкапсуляция
      • 🧑‍🏫11. Mixin
      • 🧑‍🏫12. Асинхронное программирование
      • 🧑‍🏫13. Streams
      • 🎯Final project
        • 🥦Grocery app
        • 🏠Home
    • ⚒️State management
      • ⬛Bloc
        • 1. Введение cubit
          • 1.1 Пример
          • 1.2 Пример
          • 1.3 Пример
          • 1.4 Пример
          • 1.5 Пример
        • 2. Введение в Bloc
      • 🌊Riverpod
    • 🏠Architechture
      • Clean Architechture
      • Bloc
    • 📲Locale storage
      • 🐝Hive
        • 🐝Ui
        • 🐝Hive - локальное хранилище: Введение
        • 🐝Hive - task app: часть 1
        • 🐝Hive - task app: часть 2
        • 🐝Hive - task app: часть 3
        • 🐝Hive - task app: часть 4
        • 🐝Hive - task app: часть 5
      • 🟩Sql
    • 📡Server
      • 📡Server - Lesson01 introduction
      • 📡Server - Lesson02 get data
      • 📡Server - Lesson03 News App get data
    • 🖥️Готовый backend
      • Firebase
      • Supabase
  • 🎯Dart practise
    • 🧑‍💻Переменные
      • 🧑‍💻String
      • 🧑‍💻int
      • 🧑‍💻double
      • 🧑‍💻bool
    • 🧑‍💻Функции
      • 🧑‍💻Обычные функции
      • 🧑‍💻Порядковые параметры
      • 🧑‍💻Обязательные параметры
      • 🧑‍💻Параметры по умолчанию
      • 🧑‍💻Функции-стрелки
      • 🧑‍💻Возвращаемые функции
    • 🧑‍💻Условные операторы
      • 🧑‍💻if/else
      • 🧑‍💻switch/case
      • 🧑‍💻тернарный оператор
    • 🧑‍💻Структура данных
      • 🧑‍💻List
      • 🧑‍💻Map
      • 🧑‍💻Set
    • 🧑‍💻ООП
  • 🧩Flutter Widgets
    • 💻Все виджеты
    • 🎞️Анимации
      • 🧩AnimatedContainer
      • 🧩AnimatedOpacity
      • 🧩AnimatedAlign
      • 🧩AnimatedCrossFade
      • 🧩Hero
      • 🧩AnimatedBuilder
      • 🧩AnimatedPositioned
      • 🧩AnimatedSwitcher
    • 🏗️Манипуляция пространством
      • 🧩Padding
      • 🧩SizedBox
      • 🧩Align
      • 🧩Center
      • 🧩Expanded
      • 🧩Flexible
      • 🧩Spacer
      • 🧩Column
      • 🧩Stack
      • 🧩Row
    • ✍️Отображение текста
      • 🧩RichText
      • 🧩FittedBox
      • 🧩SelectableText
      • 🧩Text
    • 📸Отображение изображений
      • 🧩Image()
      • 🧩Image.network
      • 🧩Image.asset
      • 🧩Image.file
      • 🧩Image.memory
      • 🧩FadeInImage
      • 🧩NetworkImage
      • 🧩AssetImage
    • 📃Списки и прокрутка
      • 🧩ListView()
      • 🧩ListView.builder()
      • 🧩GridView()
      • 🧩GridView.builder()
      • 🧩PageView()
      • 🧩SingleChildScrollView
      • 🧩CustomScrollView
      • 🧩ReorderableListView
      • 🧩NestedScrollView
    • ⌨️Кнопки
      • 🧩TextButton()
      • 🧩ElevatedButton()
      • 🧩IconButton()
      • 🧩DropDownButton()
      • 🧩FloatingActionButton
      • 🧩Checkbox
      • 🧩Radio
      • 🧩Switch
      • 🧩Slider
    • 📝Формы и ввод данных
      • 🧩TextField()
      • 🧩TextFormField
      • 🧩Form
      • 🧩FormField
      • 🧩DatePicker
      • 🧩TimePicker
    • 🧑‍🏫Диалоги и всплывающие окна
      • 🧩AlertDialog
      • 🧩SimpleDialog
      • 🧩BottomSheet
      • 🧩ExpansionPanel
      • 🧩SnackBar
      • 🧩PopupMenuButton
      • 🧩Tooltip
      • 🧩Dialog
    • 🛣️Навигация
      • 🧩BottomNavigationBar()
      • 🧩Navigator
      • 🧩Drawer
      • 🧩TabBar
    • 📱Отображение на экране
      • 🧩Scaffold
      • 🧩Container()
      • 🧩AppBar()
      • 🧩Icon()
      • 🧩Stepper()
  • 🎮Flutter Flame
    • Введение в разработку игр
  • 🔬Flutter projects
  • 🧑‍🎓Homeworks for everyday
    • 🧑‍🎓0. Переменные
    • 🧑‍🎓1. Функции - 1
    • 🧑‍🎓2. Функции - 2
    • 🧑‍🎓3. Условные операторы
    • 🧑‍🎓4. List
    • 🧑‍🎓5. Map
    • 🧑‍🎓6. class
    • 🐝Hive -
    • 🐝Hive clean architecture
    • 📡HTTP
    • 📡HTTP clean architecture
    • 💾Firebase
    • 💾Firebase clean architecture
Powered by GitBook
On this page
  1. Flutter Widgets
  2. Диалоги и всплывающие окна

SimpleDialog

PreviousAlertDialogNextBottomSheet

Last updated 6 months ago

Что такое SimpleDialog

SimpleDialog в Flutter — это легкое диалоговое окно, предназначенное для отображения выбора или предоставления информации без необходимости подтверждения действия. Обычно используется для выбора одного из нескольких вариантов или для отображения дополнительной информации. Подумайте об этом как о простом меню, где пользователь может выбрать опцию.

Пример использования

Вот пример использования SimpleDialog в приложении Flutter:

import 'package:flutter/material.dart';

class SimpleDialogExample extends StatelessWidget {
  const SimpleDialogExample({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('SimpleDialog Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            _showDialog(context);
          },
          child: const Text('Показать диалог'),
        ),
      ),
    );
  }

  void _showDialog(BuildContext context) {
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return SimpleDialog(
          title: const Text('Выберите вариант'),
          children: <Widget>[
            SimpleDialogOption(
              onPressed: () {
                Navigator.pop(context, 'Опция 1');
              },
              child: const Text('Опция 1'),
            ),
            SimpleDialogOption(
              onPressed: () {
                Navigator.pop(context, 'Опция 2');
              },
              child: const Text('Опция 2'),
            ),
            SimpleDialogOption(
              onPressed: () {
                Navigator.pop(context, 'Опция 3');
              },
              child: const Text('Опция 3'),
            ),
          ],
        );
      },
    );
  }
}

Как работает код

  1. showDialog: Эта функция отображает диалоговое окно. Она принимает контекст и функцию построения, которая создает виджет SimpleDialog.

  2. SimpleDialog: Основной виджет, представляющий простое диалоговое окно.

  3. title: Заголовок диалогового окна, который объясняет его назначение.

  4. children: Список виджетов, представляющий варианты выбора. Каждый вариант представлен как SimpleDialogOption.

  5. SimpleDialogOption: Виджет, который определяет отдельный вариант выбора.

  6. Navigator.pop(context, 'Опция 1'): Метод, который закрывает диалог и возвращает выбранное значение.

Все настройки SimpleDialog

  1. Widget? title

    • Описание: Заголовок диалогового окна, обычно используется для объяснения его назначения.

    • Пример:

      title: Text('Выберите вариант') // Заголовок диалога
  2. EdgeInsetsGeometry titlePadding

    • Описание: Отступы вокруг заголовка. По умолчанию установлены на EdgeInsets.fromLTRB(24.0, 24.0, 24.0, 0.0).

    • Пример:

      titlePadding: EdgeInsets.all(16.0) // Отступы для заголовка
  3. TextStyle? titleTextStyle

    • Описание: Стиль текста для заголовка.

    • Пример:

      titleTextStyle: TextStyle(fontWeight: FontWeight.bold) // Стиль текста заголовка
  4. List<Widget>? children

    • Описание: Список виджетов, представляющий варианты выбора или другие элементы в диалоге.

    • Пример:

      children: [
        SimpleDialogOption(
          onPressed: () {
            Navigator.pop(context, 'Опция 1');
          },
          child: Text('Опция 1'),
        ),
      ]
  5. EdgeInsetsGeometry contentPadding

    • Описание: Отступы вокруг содержимого диалогового окна. По умолчанию установлены на EdgeInsets.fromLTRB(0.0, 12.0, 0.0, 16.0).

    • Пример:

      contentPadding: EdgeInsets.all(10.0) // Отступы для содержимого
  6. Color? backgroundColor

    • Описание: Цвет фона диалогового окна.

    • Пример:

      backgroundColor: Colors.white // Цвет фона
  7. double? elevation

    • Описание: Высота тени диалогового окна.

    • Пример:

      elevation: 24.0 // Высота тени
  8. Color? shadowColor

    • Описание: Цвет тени для диалогового окна.

    • Пример:

      shadowColor: Colors.black.withOpacity(0.5) // Цвет тени
  9. Color? surfaceTintColor

    • Описание: Цвет наложения для поверхности.

    • Пример:

      surfaceTintColor: Colors.blue.withOpacity(0.1) // Цвет наложения
  10. String? semanticLabel

    • Описание: Семантическая метка для вспомогательных технологий.

    • Пример:

      semanticLabel: 'Выбор варианта' // Семантическая метка
  11. EdgeInsets? insetPadding

    • Описание: Отступы вокруг диалогового окна.

    • Пример:

      insetPadding: EdgeInsets.all(20.0) // Отступы для окна
  12. Clip? clipBehavior

    • Описание: Поведение обрезки для диалогового окна.

    • Пример:

      clipBehavior: Clip.antiAlias // Поведение обрезки
  13. ShapeBorder? shape

    • Описание: Форма диалогового окна.

    • Пример:

      shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12.0)) // Форма с закругленными углами
  14. AlignmentGeometry? alignment

    • Описание: Выравнивание диалогового окна на экране.

    • Пример:

      alignment: Alignment.center // Выравнивание по центру

Заключение

SimpleDialog — это полезный инструмент для отображения выбора или простой информации пользователю. Его настройки позволяют гибко настроить внешний вид и поведение диалогового окна. Используйте его для улучшения пользовательского опыта в вашем приложении.

🧩
🧑‍🏫
🧩