Диалоги

Действие показывает диалог поверх интерфейса — когда пользователь должен что-то подтвердить или прочитать, прежде чем продолжить. Можно взять готовый вид или собрать свой.

Три вида диалогов

  • Informational Dialog — сообщение с одной кнопкой: пользователь просто подтверждает, что прочитал.
  • Confirm Dialog — две кнопки; дальнейшие действия зависят от того, что нажали. Это то, что нужно перед необратимым шагом — например, удалением аккаунта.
  • Custom Dialog — полностью свой диалог, собранный из компонентов.

Informational Dialog

  1. Выделите виджет — например, кнопку.
  2. Выберите Actions в панели свойств и нажмите + Add Action.
  3. Найдите действие Alert Dialog в группе Alerts/Notifications.
  4. Задайте Alert Dialog Type = Informational Dialog.
  5. Заполните Title и Message. Значения можно взять из переменных — например, собрать текст с подставленным именем.
  6. В Dismiss Text укажите подпись кнопки.

Confirm Dialog

  1. Выделите виджет — например, кнопку.
  2. Выберите Actions в панели свойств и нажмите Open — откроется Action Flow Editor.
    1. Нажмите + Add Action.
    2. Справа найдите Alert Dialog.
    3. Задайте Alert Dialog Type = Confirm Dialog.
    4. Заполните Title и Message; значения можно взять из переменных.
    5. В Dismiss Text укажите подпись кнопки отмены, в Confirm Text — подпись подтверждающей.
    6. Нажмите + и выберите Add Conditional.
    7. В блоке Set Condition for Action задайте Source = Confirm Dialog Response.
      1. В ветку TRUE положите действие для подтверждения.
      2. В ветку FALSE — действие для отмены.
  3. Нажмите Close.

Custom Dialog

Сначала соберите компонент, который станет содержимым диалога.

  1. Выделите виджет — например, кнопку.

  2. Выберите Actions в панели свойств и нажмите + Add Action.

  3. Найдите действие Alert Dialog в группе Alerts/Notifications.

  4. Задайте Alert Dialog Type = Custom Dialog и выберите компонент в Select Component.

  5. Задайте Width и Height — без явных размеров диалог ведёт себя непредсказуемо.

  6. При необходимости задайте Background и Barrier Color — цвет самого диалога и затемнения под ним.

    Настройка цвета диалога и затемнения

  7. По умолчанию следующее действие в потоке ждёт, пока диалог открыт. Если ждать не нужно — например, вызов API должен уйти сразу после показа диалога загрузки, — включите Non Blocking.

  8. Диалог закрывается кликом вне его границ. Переключатель Non Dismissble это запрещает.

  1. Диалог появляется по центру экрана; свойство Dialog Alignment позволяет разместить его иначе.

    Выравнивание диалога

  2. Чтобы диалог встал рядом с виджетом, который его открыл, включите Align with the Target Widget и настройте Target Alignment. Если диалог вылезает за край экрана, включите Avoid Overflow.

перевод официальной документации FlutterFlow

обновлено

⌕ ESC