ExpansionTile class Null safety

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 ListTileTheme.iconColor and ListTileTheme.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.

This example demonstrates different configurations of ExpansionTile.
To create a local project with this code sample, run:
flutter create --sample=material.ExpansionTile.1 mysample

See also:

Inheritance

Constructors

ExpansionTile({Key? key, Widget? leading, required Widget title, Widget? subtitle, ValueChanged<bool>? onExpansionChanged, List<Widget> children, Widget? trailing, bool initiallyExpanded, bool maintainState, EdgeInsetsGeometry? tilePadding, CrossAxisAlignment? expandedCrossAxisAlignment, Alignment? expandedAlignment, EdgeInsetsGeometry? childrenPadding, Color? backgroundColor, Color? collapsedBackgroundColor, Color? textColor, Color? collapsedTextColor, Color? iconColor, Color? collapsedIconColor, ListTileControlAffinity? controlAffinity})
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
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. [...]
@nonVirtual, read-only, inherited
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. [...]
final, inherited
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
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
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<ExpansionTile>
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, inherited
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

Operators

operator ==(Object other) bool
The equality operator. [...]
@nonVirtual, inherited