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

Функция showGeneralDialog

Функция showGeneralDialog похожа на showDialog, но принимает pageBuilder и transitionBuilder. Контекст - context, страница - в pageBuilder, анимация - в transitionBuilder. Используют для нестандартных окон.

Синтаксис

showGeneralDialog( context: context, pageBuilder: (BuildContext context, Animation<double> a1, Animation<double> a2) { return Center(child: Text('abcde')); }, )

Параметры

Параметр Описание
context Контекст экрана.
pageBuilder Строит виджет диалога.
barrierDismissible Закрытие по нажатию на барьер.

Пример

Давайте покажем простой general dialog:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: GenDialogPage())); } class GenDialogPage extends StatelessWidget { const GenDialogPage({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: Center( child: ElevatedButton( onPressed: () { showGeneralDialog( context: context, pageBuilder: (ctx, a1, a2) { return AlertDialog(title: Text('abcde')); }, ); }, child: Text('12345'), ), ), ); } }

Откроется AlertDialog через general API.

Пример

Давайте обернём контент в Material:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: GenDialogPage2())); } class GenDialogPage2 extends StatelessWidget { const GenDialogPage2({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: Center( child: ElevatedButton( onPressed: () { showGeneralDialog( context: context, pageBuilder: (ctx, a1, a2) { return Material( child: Padding( padding: EdgeInsets.all(32), child: Text('abcde'), ), ); }, ); }, child: Text('abcde'), ), ), ); } }

По центру появится Material с текстом 'abcde'.

Смотрите также

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