t×tecexpressby TeKOcloud
ENv0.7.1
Navigation & Feedback / FLUTTER

TxPopup.

Interaktive Vorschau

Dialog mit Titel und Inhalt. Vorereignisse können synchron abgebrochen werden; externe Sichtbarkeit bleibt maßgeblich.

TxPopup

ParameterTypStandardBedeutung
visibleboolerforderlichSteuert die Sichtbarkeit.
childWidgeterforderlichInhalt beziehungsweise Zielwidget.
titleString'Dialog'Titel der Ansicht.
actionsList<Widget>const []Aktionen des Dialogs beziehungsweise der Karte.
onVisibleChangedValueChanged<bool>?nullMeldet visible; kontrollierten Zustand im Callback aktualisieren.
onShownVoidCallback?nullNach Anzeige, ohne Payload.
onHiddenVoidCallback?nullNach Verbergen, ohne Payload.
showCloseButtonbooltrueZeigt die Schließen-Aktion.
hideOnOutsideClickboolfalseErlaubt Schließen über den Außenbereich.
widthdouble480Breite; Vue-Zahlen in Pixeln, Flutter in logischen Pixeln.
heightdouble?nullHöhe; Vue-Zahlen in Pixeln, Flutter in logischen Pixeln.
fullScreenboolfalseFüllt den Bildschirm.
dragEnabledboolfalseErlaubt das Verschieben des Dialogs.
resizeEnabledboolfalseErlaubt Größenänderungen des Dialogs.
alignmentAlignmentAlignment.centerAusrichtung des Inhalts.
onShowingValueChanged<TxChange<bool>>?nullVor Anzeige: TxChange<bool>; cancel synchron setzen, um abzubrechen.
onHidingValueChanged<TxChange<bool>>?nullVor benutzerinitiiertem Schließen: TxChange<bool>; synchron abbrechbar.
Mitglied / Typ / RückgabeBedeutung
static Future<T?> show<T>(BuildContext context, {required String title, required Widget child, List<Widget> actions = const [], double width = 480, bool hideOnOutsideClick = false})Öffnet die native Overlay-Alternative; den Rückgabevertrag der jeweiligen Signatur beachten.
dart
import 'package:flutter/material.dart';
import 'package:tecexpress/tecexpress.dart';

Widget example() {
  var visible = false;
  return StatefulBuilder(
    builder: (context, setState) => Column(mainAxisSize: MainAxisSize.min, children: [TxButton(text: 'Open', onPressed: () => setState(() => visible = true)), TxPopup(visible: visible, onVisibleChanged: (v) => setState(() => visible = v), child: const Text('Hello'))]),
  );
}
dart
import 'package:flutter/material.dart';
import 'package:tecexpress/tecexpress.dart';

Future<void> open(BuildContext context) async {
  final result = await TxPopup.show<bool>(context, title: 'Confirm', child: const Text('Continue?'), actions: [Builder(builder: (dialogContext) => TextButton(onPressed: () => Navigator.of(dialogContext).pop(true), child: const Text('OK')))]);
  debugPrint('$result');
}