Expander class
A component that creates a collapsible container with a clickable header.
Expander is useful for creating accordion-style UI elements, FAQ sections, or any content that needs to be shown or hidden based on user interaction. It features smooth animations and can be controlled either through user interaction or programmatically via an ExpanderController.
See also:
doc/component/expander.md
for more detailed documentation- ExpanderController, which can be used to control this widget
- ExpanderState, which represents this widget's state
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- Expander
- Mixed-in types
- Available extensions
Constructors
- Expander.new({Key? key, required Widget child, required Widget header, double gapPadding = 8, CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.start, bool initiallyExpanded = false, ExpanderController? controller, Duration duration = const Duration(milliseconds: 250), Duration reverseDuration = const Duration(milliseconds: 250), Curve curve = Curves.easeOutCirc, AlignmentGeometry alignment = Alignment.topCenter, Widget? overrideSeparator})
-
Creates an Expander widget.
const
Properties
- alignment → AlignmentGeometry
-
Alignment of the animated content.
final
- asBuilder → NeverWidgetBuilder
-
Available on Widget, provided by the WidgetExtension extension
no setter - asSliver → Widget
-
Available on Widget, provided by the XWidgetArcane extension
no setter - ast → Widget
-
Available on Widget, provided by the XAST extension
no setter - base → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - black → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - blockQuote → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - blurIn → Widget
-
Available on Widget, provided by the XWidgetEffect extension
no setter - bold → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - centered → Widget
-
Available on Widget, provided by the XWidget extension
no setter - child → Widget
-
The content to show when expanded.
final
- controller → ExpanderController?
-
Optional controller for external state management.
final
- crossAxisAlignment → CrossAxisAlignment
-
Cross-axis alignment of the content.
final
- curve → Curve
-
Animation curve for expansion.
final
- duration → Duration
-
Duration of the expansion animation.
final
- ellipsis → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - expand → Widget
-
Available on Widget, provided by the XWidget extension
no setter - extraBold → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - extraLight → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - firstP → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - flexible → Widget
-
Available on Widget, provided by the XWidget extension
no setter - foreground → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - gapPadding → double
-
Space between header and expanded content.
final
- h1 → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - h2 → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - h3 → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - h4 → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - hashCode → int
-
The hash code for this object.
no setterinherited
- header → Widget
-
The always-visible header that toggles expansion when clicked.
final
- ih → Widget
-
Available on Widget, provided by the XWidgetArcane extension
no setter - initiallyExpanded → bool
-
Whether the content is initially expanded.
final
- inlineCode → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - intrinsicHeight → Widget
-
Available on Widget, provided by the XWidget extension
no setter - intrinsicSize → Widget
-
Available on Widget, provided by the XWidget extension
no setter - intrinsicWidth → Widget
-
Available on Widget, provided by the XWidget extension
no setter - italic → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - iw → Widget
-
Available on Widget, provided by the XWidgetArcane extension
no setter - key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- large → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - lead → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - li → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - light → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - medium → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - modify → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - mono → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - muted → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - normal → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - overrideSeparator → Widget?
-
Custom widget to show between header and content instead of gap.
final
- p → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - primaryForeground → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - reverseDuration → Duration
-
Duration of the collapse animation.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- safeArea → Widget
-
Available on Widget, provided by the XWidget extension
no setter - sans → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - scrollable → Widget
-
Available on Widget, provided by the XWidget extension
no setter - scrollableHorizontal → Widget
-
Available on Widget, provided by the XWidget extension
no setter - secondaryForeground → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - semiBold → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - singleLine → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - small → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - textCenter → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - textEnd → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - textJustify → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - textLarge → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - textLeft → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - textMuted → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - textRight → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - textSmall → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - textStart → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - thin → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - underline → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - x2Large → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - x3Large → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - x4Large → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - x5Large → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - x6Large → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - x7Large → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - x8Large → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - x9Large → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - xLarge → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - xSmall → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter
Methods
-
animate(
{Key? key, List< Effect> ? effects, AnimateCallback? onInit, AnimateCallback? onPlay, AnimateCallback? onComplete, bool? autoPlay, Duration? delay, AnimationController? controller, Adapter? adapter, double? target, double? value}) → Animate -
Available on Widget, provided by the AnimateWidgetExtensions extension
Wraps the target Widget in an Animate instance, and returns the instance for chaining calls. Ex.myWidget.animate()
is equivalent toAnimate(child: myWidget)
. -
asSkeleton(
{bool enabled = true, bool leaf = false, Widget? replacement, bool unite = false, AsyncSnapshot? snapshot}) → Widget -
Available on Widget, provided by the SkeletonExtension extension
-
asSkeletonSliver(
{bool enabled = true}) → Widget -
Available on Widget, provided by the SkeletonExtension extension
-
center(
{Key? key}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
clip(
{Clip clipBehavior = Clip.hardEdge}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
clipOval(
{Clip clipBehavior = Clip.antiAlias}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
clipPath(
{Clip clipBehavior = Clip.antiAlias, required CustomClipper< Path> clipper}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
clipRRect(
{BorderRadiusGeometry borderRadius = BorderRadius.zero, Clip clipBehavior = Clip.antiAlias}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
constrained(
{double? minWidth, double? maxWidth, double? minHeight, double? maxHeight, double? width, double? height}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< Expander> -
Creates the mutable state for this widget at a given location in the tree.
override
-
debugContainer(
[Color color = Colors.red]) → Widget -
Available on Widget, provided by the DebugContainer extension
-
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
-
excludeSkeleton(
{bool exclude = true}) → Widget -
Available on Widget, provided by the SkeletonExtension extension
-
expanded(
{int flex = 1}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
iconDestructiveForeground(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconLarge(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconMedium(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconMutedForeground(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconPrimary(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconPrimaryForeground(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconSecondary(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconSecondaryForeground(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconSmall(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconX2Large(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconX2Small(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconX3Large(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconX3Small(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconX4Large(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconX4Small(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconXLarge(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
iconXSmall(
) → Widget -
Available on Widget, provided by the IconExtension extension
-
ignoreSkeleton(
) → Widget -
Available on Widget, provided by the SkeletonExtension extension
-
intrinsic(
{double? stepWidth, double? stepHeight}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
intrinsicHeight(
) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
intrinsicWidth(
{double? stepWidth, double? stepHeight}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
isSliver(
BuildContext context) → bool -
Available on Widget, provided by the XSliverWidget extension
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onDoublePressed(
VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget -
Available on Widget, provided by the XOnGestureWidget extension
Adds a handler for double press/tap gestures. -
onHover(
void action(bool hovering)) → Widget -
Available on Widget, provided by the XOnGestureWidget extension
Adds a handler for hover events. -
onLongPressed(
VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget -
Available on Widget, provided by the XOnGestureWidget extension
Adds a handler for long press gestures with the primary button. -
onLongSecondaryPressed(
VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget -
Available on Widget, provided by the XOnGestureWidget extension
Adds a handler for long press gestures with the secondary button. -
onLongTertiaryPressed(
VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget -
Available on Widget, provided by the XOnGestureWidget extension
Adds a handler for long press gestures with the tertiary button. -
onPressed(
VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget -
Available on Widget, provided by the XOnGestureWidget extension
Adds a handler for primary press/tap gestures (equivalent to onTap). -
onSecondaryPressed(
VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget -
Available on Widget, provided by the XOnGestureWidget extension
Adds a handler for secondary press gestures (equivalent to right-click). -
onTertiaryPressed(
VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget -
Available on Widget, provided by the XOnGestureWidget extension
Adds a handler for tertiary press gestures (equivalent to middle-click). -
pad(
double all) → Widget -
padBottom(
double value) → Widget -
padLeft(
double value) → Widget -
padOnly(
{double left = 0, double top = 0, double right = 0, double bottom = 0}) → Widget -
padRight(
double value) → Widget -
padTop(
double value) → Widget -
positioned(
{Key? key, double? left, double? top, double? right, double? bottom}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
shadeEdge(
double radius) → Widget -
Available on Widget, provided by the XWidgetEdge extension
-
shadeFrost(
double value) → Widget -
Available on Widget, provided by the XWidgetFrost extension
-
shadeInvert(
) → Widget -
Available on Widget, provided by the XWidgetInvert extension
-
shadePixelate(
double radius) → Widget -
Available on Widget, provided by the XWidgetPixelate extension
-
shadePixelateBlur(
{int samples = 4, double pixelSize = 8, double radius = 2}) → Widget -
Available on Widget, provided by the XWidgetPixelateBlur extension
-
shadeRGB(
{double radius = 5, double spin = 1}) → Widget -
Available on Widget, provided by the XWidgetRGB extension
-
shadeWarp(
{double amplitude = 1, double frequency = 1, double z = 1, int octaves = 2}) → Widget -
Available on Widget, provided by the XWidgetWarp extension
-
shadeWarpAnimation(
{double amplitude = 1, double frequency = 1, double z = 1, double zSpeed = 1, int octaves = 2}) → Widget -
Available on Widget, provided by the XWidgetWarp extension
-
shimmer(
{bool loading = true}) → Widget -
Available on Widget, provided by the XWidgetArcane extension
-
sized(
{double? width, double? height}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
sized(
{double? width, double? height}) → Widget -
then(
InlineSpan span) → Widget -
Available on Widget, provided by the TextExtension extension
-
thenButton(
{required VoidCallback onPressed, required Widget child}) → Widget -
Available on Widget, provided by the TextExtension extension
-
thenInlineCode(
String text) → Widget -
Available on Widget, provided by the TextExtension extension
-
thenText(
String text) → Widget -
Available on Widget, provided by the TextExtension extension
-
toBox(
BuildContext context, {bool softWarn = true}) → Widget -
Available on Widget, provided by the XSliverWidget extension
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toSliver(
BuildContext context, {bool fillRemaining = false, bool softWarn = true}) → Widget -
Available on Widget, provided by the XSliverWidget extension
-
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
-
transform(
{Key? key, required Matrix4 transform}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
withAlign(
AlignmentGeometry alignment) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
withMargin(
{double? top, double? bottom, double? left, double? right, double? horizontal, double? vertical, double? all}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
withOpacity(
double opacity) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
withPadding(
{double? top, double? bottom, double? left, double? right, double? horizontal, double? vertical, double? all, EdgeInsetsGeometry? padding}) → Widget -
Available on Widget, provided by the WidgetExtension extension
-
withTooltip(
String tooltip) → Widget -
Available on Widget, provided by the XWidgetArcane extension
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited