DrivenSwitcher class

A widget that switches between child widgets based on events, with animations.

DrivenSwitcher inherits from DrivenChild<Widget> and utilizes an AnimatedSwitcher internally to provide animated transitions between child widgets based on the current events. You can define different child widgets for various event states (e.g., error, disabled, loading, etc.) using the constructor parameters inherited from DrivenChild.

Inheritance

Constructors

DrivenSwitcher(Widget enabled, {Widget? atError, Widget? atDisabled, Widget? atLoading, Widget? atDragged, Widget? atPressed, Widget? atHovered, Widget? atFocused, Widget? atIndeterminate, Widget? atSelected, Map<WidgetEvent, Widget?> registry = const {}, Key? key, Duration? duration, Duration? reverseDuration, Curve? switchInCurve, Curve? switchOutCurve, AnimatedSwitcherTransitionBuilder? transitionBuilder, AnimatedSwitcherLayoutBuilder? layoutBuilder, bool? maintainKey = true})
Creates a DrivenSwitcher with the provided child widgets for different event states and optional animation parameters.
const
DrivenSwitcher.by(DrivenPropertyResolver<Widget> callback)
Creates a DrivenSwitcher from a callback function that resolves the child widget based on events.
factory
DrivenSwitcher.map(Widget atEnabled, Map<WidgetEvent, Widget?> registry, {Key? key, Duration? duration, Duration? reverseDuration, Curve? switchInCurve, Curve? switchOutCurve, AnimatedSwitcherTransitionBuilder? transitionBuilder, AnimatedSwitcherLayoutBuilder? layoutBuilder, bool? maintainKey})
Creates a DrivenSwitcher with a map of custom event-widget associations to map events to child widgets and optional animation parameters.
const

Properties

atDisabled Widget?
The widget to display when the WidgetEvent.disabled event occurs.
finalinherited
atDragged Widget?
The widget to display when the WidgetEvent.dragged event occurs.
finalinherited
atEnabled Widget
The widget to display when the widget is enabled.
finalinherited
atError Widget?
The widget to display when the WidgetEvent.error event occurs.
finalinherited
atFocused Widget?
The widget to display when the WidgetEvent.focused event occurs.
finalinherited
atHovered Widget?
The widget to display when the WidgetEvent.hovered event occurs.
finalinherited
atIndeterminate Widget?
The widget to display when the WidgetEvent.indeterminate event occurs.
finalinherited
atLoading Widget?
The widget to display when the WidgetEvent.loading event occurs.
finalinherited
atPressed Widget?
The widget to display when the WidgetEvent.pressed event occurs.
finalinherited
atSelected Widget?
The widget to display when the WidgetEvent.selected event occurs.
finalinherited
driven Map<WidgetEvent, Widget?>
Combines the default and custom event-to-widget mappings.
no setterinherited
duration Duration?
The duration of the switch animation.
final
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
layoutBuilder AnimatedSwitcherLayoutBuilder?
The builder function used to customize the layout of the AnimatedSwitcher.
final
maintainKey bool?
Whether to maintain a key for the child widget during switching.
final
registry Map<WidgetEvent, Widget?>
A map of custom event-widget associations.
finalinherited
reverseDuration Duration?
The duration of the reverse switch animation.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
switchInCurve Curve?
The curve used for the switch-in animation.
final
switchOutCurve Curve?
The curve used for the switch-out animation.
final
transitionBuilder AnimatedSwitcherTransitionBuilder?
The builder function used to customize the switch animation.
final

Methods

build(BuildContext context) Widget
Describes the part of the user interface represented by this widget.
override
createElement() StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
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
resolve(Set<WidgetEvent> events) Widget
Returns a value of type T that depends on events.
override
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

Operators

operator ==(Object other) bool
The equality operator.
inherited

Constants

defaultDuration → const Duration
The default duration for the switch animation.
defaultLayoutBuilder → const Widget Function(Widget? currentChild, List<Widget> previousChildren)
The default layout builder for the AnimatedSwitcher.
defaultTransitionBuilder → const Widget Function(Widget child, Animation<double> animation)
The default transition builder for the AnimatedSwitcher.