import 'package:flutter/material.dart'; /// Schwebende SnackBars ordnet der `Scaffold` über `bottomNavigationBar` und /// `floatingActionButton` an. Feste Bedienelemente gehören deshalb in diese /// Slots und nicht in den `body`, sonst liegt die Meldung über ihnen. const SnackBarThemeData appSnackBarTheme = SnackBarThemeData( behavior: SnackBarBehavior.floating, ); extension AppMessage on BuildContext { /// Zeigt [message] als einheitliche Kurzmeldung. Eine noch sichtbare Meldung /// wird ersetzt, damit sich Meldungen nicht stauen und Buttons nicht /// minutenlang verdecken. void showAppMessage( String message, { Duration duration = const Duration(seconds: 4), SnackBarAction? action, }) { ScaffoldMessenger.of(this) ..clearSnackBars() ..showSnackBar( SnackBar( content: Text(message), duration: duration, action: action, // Flutter ließe Meldungen mit Aktion sonst stehen, bis jemand sie // antippt oder wegwischt. persist: false, ), ); } }