ConfigurableExpansionTile class
A single-line ListTile with an expansion arrow icon that expands or collapses the tile to reveal or hide the children.
This widget is typically used with ListView to create an "expand / collapse" list entry. When used with scrolling widgets like ListView, a unique PageStorageKey must be specified to enable the ExpansionTile to save and restore its expanded state when it is scrolled in and out of view.
This class overrides the ListTileThemeData.iconColor and ListTileThemeData.textColor theme properties for its ListTile. These colors animate between values when the tile is expanded and collapsed: between iconColor, collapsedIconColor and between textColor and collapsedTextColor.
The expansion arrow icon is shown on the right by default in left-to-right languages (i.e. the trailing edge). This can be changed using controlAffinity. This maps to the leading and trailing properties of ExpansionTile.
{@tool dartpad} This example demonstrates different configurations of ExpansionTile.
** See code in examples/api/lib/material/expansion_tile/expansion_tile.0.dart ** {@end-tool}
See also:
- ListTile, useful for creating expansion tile children when the expansion tile represents a sublist.
- The "Expand and collapse" section of material.io/components/lists#types
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- ConfigurableExpansionTile
Constructors
-
ConfigurableExpansionTile({required Key key, Widget? leading, required Widget title, Widget? subtitle, ValueChanged<
bool> ? onExpansionChanged, List<Widget> children = const <Widget>[], Widget? trailing, bool initiallyExpanded = false, bool maintainState = false, EdgeInsetsGeometry? tilePadding, CrossAxisAlignment? expandedCrossAxisAlignment, Alignment? expandedAlignment, EdgeInsetsGeometry? childrenPadding, Color? backgroundColor, Color? collapsedBackgroundColor, Color? textColor, Color? collapsedTextColor, Color? iconColor, Color? collapsedIconColor, ListTileControlAffinity? controlAffinity, bool hideIcon = false, bool disabled = false, VoidCallback? onTap}) -
Creates a single-line ListTile with an expansion arrow icon that expands or collapses
the tile to reveal or hide the children. The initiallyExpanded property must
be non-null.
const
Properties
- backgroundColor → Color?
-
The color to display behind the sublist when expanded.
final
-
children
→ List<
Widget> -
The widgets that are displayed when the tile expands.
final
- childrenPadding → EdgeInsetsGeometry?
-
Specifies padding for children.
final
- collapsedBackgroundColor → Color?
-
When not null, defines the background color of tile when the sublist is collapsed.
final
- collapsedIconColor → Color?
-
The icon color of tile's expansion arrow icon when the sublist is collapsed.
final
- collapsedTextColor → Color?
-
The color of the tile's titles when the sublist is collapsed.
final
- controlAffinity → ListTileControlAffinity?
-
Typically used to force the expansion arrow icon to the tile's leading or trailing edge.
final
- disabled → bool
-
Use to disable click
final
- expandedAlignment → Alignment?
-
Specifies the alignment of children, which are arranged in a column when
the tile is expanded.
final
- expandedCrossAxisAlignment → CrossAxisAlignment?
-
Specifies the alignment of each child within children when the tile is expanded.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- hideIcon → bool
-
Use to hide icon
final
- iconColor → Color?
-
The icon color of tile's expansion arrow icon when the sublist is expanded.
final
- initiallyExpanded → bool
-
Specifies if the list tile is initially expanded (true) or collapsed (false, the default).
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- leading → Widget?
-
A widget to display before the title.
final
- maintainState → bool
-
Specifies whether the state of the children is maintained when the tile expands and collapses.
final
-
onExpansionChanged
→ ValueChanged<
bool> ? -
Called when the tile expands or collapses.
final
- onTap → VoidCallback?
-
onTap callback
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- subtitle → Widget?
-
Additional content displayed below the title.
final
- textColor → Color?
-
The color of the tile's titles when the sublist is expanded.
final
- tilePadding → EdgeInsetsGeometry?
-
Specifies padding for the ListTile.
final
- title → Widget
-
The primary content of the list item.
final
- trailing → Widget?
-
A widget to display after the title.
final
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< ConfigurableExpansionTile> -
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}) → 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