SnackBar class Null safety
A lightweight message with an optional action which briefly displays at the bottom of the screen.
To display a snack bar, call ScaffoldMessenger.of(context).showSnackBar()
,
passing an instance of SnackBar that describes the message.
To control how long the SnackBar remains visible, specify a duration.
A SnackBar with an action will not time out when TalkBack or VoiceOver are enabled. This is controlled by AccessibilityFeatures.accessibleNavigation.
During page transitions, the SnackBar will smoothly animate to its location on the other page. For example if the SnackBar.behavior is set to SnackBarBehavior.floating and the next page has a floating action button, while the current one does not, the SnackBar will smoothly animate above the floating action button. It also works in the case of a back gesture transition.
flutter create --sample=material.SnackBar.1 mysample
flutter create --sample=material.SnackBar.2 mysample
See also:
- ScaffoldMessenger.of, to obtain the current ScaffoldMessengerState, which manages the display and animation of snack bars.
- ScaffoldMessengerState.showSnackBar, which displays a SnackBar.
- ScaffoldMessengerState.removeCurrentSnackBar, which abruptly hides the currently displayed snack bar, if any, and allows the next to be displayed.
- SnackBarAction, which is used to specify an action button to show on the snack bar.
- SnackBarThemeData, to configure the default property values for SnackBar widgets.
- material.io/design/components/snackbars.html
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- SnackBar
Constructors
-
SnackBar({Key? key, required Widget content, Color? backgroundColor, double? elevation, EdgeInsetsGeometry? margin, EdgeInsetsGeometry? padding, double? width, ShapeBorder? shape, SnackBarBehavior? behavior, SnackBarAction? action, Duration duration = _snackBarDisplayDuration, Animation<
double> ? animation, VoidCallback? onVisible, DismissDirection dismissDirection = DismissDirection.down, Clip clipBehavior = Clip.hardEdge}) -
Creates a snack bar.
const
Properties
- action → SnackBarAction?
-
(optional) An action that the user can take based on the snack bar.
final
-
animation
→ Animation<
double> ? -
The animation driving the entrance and exit of the snack bar.
final
- backgroundColor → Color?
-
The snack bar's background color. If not specified it will use
SnackBarThemeData.backgroundColor of ThemeData.snackBarTheme. If that
is not specified it will default to a dark variation of
ColorScheme.surface for light themes, or ColorScheme.onSurface for
dark themes.
final
- behavior → SnackBarBehavior?
-
This defines the behavior and location of the snack bar.
final
- clipBehavior → Clip
-
The content will be clipped (or not) according to this option.
final
- content → Widget
-
The primary content of the snack bar.
final
- dismissDirection → DismissDirection
-
The direction in which the SnackBar can be dismissed.
final
- duration → Duration
-
The amount of time the snack bar should be displayed.
final
- elevation → double?
-
The z-coordinate at which to place the snack bar. This controls the size
of the shadow below the snack bar.
final
- hashCode → int
- The hash code for this object.
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- margin → EdgeInsetsGeometry?
-
Empty space to surround the snack bar.
final
- onVisible → VoidCallback?
-
Called the first time that the snackbar is visible within a Scaffold.
final
- padding → EdgeInsetsGeometry?
-
The amount of padding to apply to the snack bar's content and optional
action.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
read-onlyinherited
- shape → ShapeBorder?
-
The shape of the snack bar's Material.
final
- width → double?
-
The width of the snack bar.
final
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< SnackBar> -
Creates the mutable state for this widget at a given location in the tree.
override
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of
DiagnosticsNode
objects describing this node's children.protected">@protectedinherited -
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed.
inherited
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
-
withAnimation(
Animation< double> newAnimation, {Key? fallbackKey}) → SnackBar - Creates a copy of this snack bar but with the animation replaced with the given animation.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
nonVirtual">@nonVirtualinherited
Static Methods
-
createAnimationController(
{required TickerProvider vsync}) → AnimationController - Creates an animation controller useful for driving a snack bar's entrance and exit animation.