Dialog mit Titel und Inhalt. Vorereignisse können synchron abgebrochen werden; externe Sichtbarkeit bleibt maßgeblich.
TxPopup
| Parameter | Typ | Standard | Bedeutung |
|---|---|---|---|
| visible | bool | erforderlich | Steuert die Sichtbarkeit. |
| child | Widget | erforderlich | Inhalt beziehungsweise Zielwidget. |
| title | String | 'Dialog' | Titel der Ansicht. |
| actions | List<Widget> | const [] | Aktionen des Dialogs beziehungsweise der Karte. |
| onVisibleChanged | ValueChanged<bool>? | null | Meldet visible; kontrollierten Zustand im Callback aktualisieren. |
| onShown | VoidCallback? | null | Nach Anzeige, ohne Payload. |
| onHidden | VoidCallback? | null | Nach Verbergen, ohne Payload. |
| showCloseButton | bool | true | Zeigt die Schließen-Aktion. |
| hideOnOutsideClick | bool | false | Erlaubt Schließen über den Außenbereich. |
| width | double | 480 | Breite; Vue-Zahlen in Pixeln, Flutter in logischen Pixeln. |
| height | double? | null | Höhe; Vue-Zahlen in Pixeln, Flutter in logischen Pixeln. |
| fullScreen | bool | false | Füllt den Bildschirm. |
| dragEnabled | bool | false | Erlaubt das Verschieben des Dialogs. |
| resizeEnabled | bool | false | Erlaubt Größenänderungen des Dialogs. |
| alignment | Alignment | Alignment.center | Ausrichtung des Inhalts. |
| onShowing | ValueChanged<TxChange<bool>>? | null | Vor Anzeige: TxChange<bool>; cancel synchron setzen, um abzubrechen. |
| onHiding | ValueChanged<TxChange<bool>>? | null | Vor benutzerinitiiertem Schließen: TxChange<bool>; synchron abbrechbar. |
| Mitglied / Typ / Rückgabe | Bedeutung |
|---|---|
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. |
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'))]),
);
}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');
}