İçeriğe geç / Skip to content / Zum Inhalt
Ahmet Balaman LogoAhmet Balaman

Flutter: AlertDialog verwenden und anpassen

Ahmet Balaman
FlutterAlertDialogDialogWidgetUIPopup

AlertDialog ist ein Popup, mit dem wir Hinweise anzeigen oder Bestätigungen von Nutzern einholen können. Es bleibt auf dem Bildschirm, bis es geschlossen wird, und blockiert die Interaktion mit dem dahinterliegenden Inhalt.

Live-Demo

Sie können dieses Widget im interaktiven Beispiel unten ausprobieren:

💡 Falls das Beispiel oben nicht lädt, klicken Sie auf DartPad, um es in einem neuen Tab auszuführen.

Grundlegende Verwendung

Zum Anzeigen eines AlertDialog wird die Funktion showDialog verwendet:

showDialog(
  context: context,
  builder: (BuildContext context) {
    return AlertDialog(
      title: Text('Title'),
      content: Text('Content text'),
      actions: [
        TextButton(
          onPressed: () => Navigator.of(context).pop(),
          child: Text('OK'),
        ),
      ],
    );
  },
);

Bestätigungsdialog

So holen Sie eine Bestätigung vom Nutzer ein:

Future<void> _showConfirmDialog() async {
  final result = await showDialog<bool>(
    context: context,
    builder: (context) => AlertDialog(
      title: Text('Delete Confirmation'),
      content: Text('Do you want to delete this item?'),
      actions: [
        TextButton(
          onPressed: () => Navigator.pop(context, false),
          child: Text('NO'),
        ),
        TextButton(
          onPressed: () => Navigator.pop(context, true),
          child: Text('YES'),
        ),
      ],
    ),
  );
  
  if (result == true) {
    // Delete operation
  }
}

Eingaben erfassen

Daten mit einem TextField vom Nutzer erfassen:

final controller = TextEditingController();

showDialog(
  context: context,
  builder: (context) => AlertDialog(
    title: Text('Enter Name'),
    content: TextField(
      controller: controller,
      decoration: InputDecoration(hintText: 'Your name...'),
    ),
    actions: [
      TextButton(
        onPressed: () => Navigator.pop(context),
        child: Text('CANCEL'),
      ),
      TextButton(
        onPressed: () => Navigator.pop(context, controller.text),
        child: Text('SAVE'),
      ),
    ],
  ),
);

Wichtige Eigenschaften

Eigenschaft Beschreibung
title Titel des Dialogs
content Inhalt des Dialogs
actions Buttons am unteren Rand
shape Form des Dialogs
backgroundColor Hintergrundfarbe
barrierDismissible Schließen bei Tippen außerhalb

barrierDismissible

So verhindern Sie das Schließen beim Tippen außerhalb des Dialogs:

showDialog(
  context: context,
  barrierDismissible: false, // Won't close when tapping outside
  builder: (context) => AlertDialog(
    title: Text('Required Selection'),
    content: Text('You must select an option'),
    actions: [...],
  ),
);

Zusammenfassung

  • AlertDialog: Modales Popup-Fenster
  • showDialog: Dient zum Anzeigen des Dialogs
  • Navigator.pop(): Schließt den Dialog und gibt einen Wert zurück
  • barrierDismissible: Steuert das Verhalten beim Tippen außerhalb
  • actions: Enthält die Buttons des Dialogs

AlertDialog ist ein grundlegendes Werkzeug für Bestätigungen und Hinweise an Nutzer.

Kommentare