SnackBar class
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.
To create a local project with this code sample, run:
flutter create --sample=material.SnackBar.1 mysample
To create a local project with this code sample, run:
flutter create --sample=material.SnackBar.2 mysample
To create a local project with this code sample, run:
flutter create --sample=material.SnackBar.3 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, HitTestBehavior? hitTestBehavior, SnackBarBehavior? behavior, SnackBarAction? action, double? actionOverflowThreshold, bool? showCloseIcon, Color? closeIconColor, Duration duration = _snackBarDisplayDuration, Animation<
double> ? animation, VoidCallback? onVisible, DismissDirection? dismissDirection, 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
- actionOverflowThreshold → double?
-
(optional) The percentage threshold for action widget's width before it overflows
to a new line.
final
-
animation
→ Animation<
double> ? -
The animation driving the entrance and exit of the snack bar.
final
- backgroundColor → Color?
-
The snack bar's background color.
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
- closeIconColor → Color?
-
An optional color for the close icon, if showCloseIcon is
true.
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.
no setterinherited
- hitTestBehavior → HitTestBehavior?
-
Defines how the snack bar area, including margin, will behave during hit testing.
final
- 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.
no setterinherited
- shape → ShapeBorder?
-
The shape of the snack bar's Material.
final
- showCloseIcon → bool?
-
(optional) Whether to include a "close" icon widget.
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.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent 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, int wrapWidth = 65}) → 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.
inherited
Static Methods
-
createAnimationController(
{required TickerProvider vsync, Duration? duration, Duration? reverseDuration}) → AnimationController - Creates an animation controller useful for driving a snack bar's entrance and exit animation.