EnhancedCupertinoListTile class

EnhancedCupertinoListTile is based on CupertinoListTile from the Flutter standard library. EnhancedCupertinoListTile provides titleBuilder and subtitleBuilder arguments which allow the caller to provide their own styling through the use of DefaultTextStyle, while also still getting the styling provided by this class.

An iOS-style list tile.

The EnhancedCupertinoListTile is a Cupertino equivalent of Material ListTile. It comes in two forms, an old-fashioned edge-to-edge variant known from iOS Settings app and in a new, "Inset Grouped" form, known from either iOS Notes or Reminders app. The first is constructed using default constructor, and the latter using named constructor CupertinoListTile.notched.

The title, subtitle, and additionalInfo are usually Text widgets. They are all limited to one line so it is a responsibility of the caller to take care of text wrapping.

The size of leading is by default constrained to match the iOS size, depending of the type of list tile. This can however be overridden by providing leadingSize. The trailing widget is not constrained and is therefore a responsibility of the caller to ensure reasonable size of the trailing widget.

The background color of the tile can be set with backgroundColor for the state before tile was tapped and with backgroundColorActivated for the state after the tile was tapped. By default, both values are set to match the default iOS appearance.

The padding and leadingToTitle are by default set to match iOS but can be overwritten if necessary.

The onTap callback provides an option to react to taps anywhere inside the list tile. This can be used to navigate routes and according to iOS behavior it should not be used for example to toggle the CupertinoSwitch in the trailing widget.

See also:

Inheritance

Constructors

EnhancedCupertinoListTile({Key? key, required WidgetBuilder titleBuilder, WidgetBuilder? subtitleBuilder, Widget? additionalInfo, Widget? leading, Widget? trailing, FutureOr<void> onTap()?, Color? backgroundColor, Color? backgroundColorActivated, EdgeInsetsGeometry? padding, double leadingSize = _kLeadingSize, double leadingToTitle = _kLeadingToTitle})
Creates an edge-to-edge iOS-style list tile like the tiles in iOS Settings app.
const
EnhancedCupertinoListTile.notched({Key? key, required WidgetBuilder titleBuilder, WidgetBuilder? subtitleBuilder, Widget? additionalInfo, Widget? leading, Widget? trailing, FutureOr<void> onTap()?, Color? backgroundColor, Color? backgroundColorActivated, EdgeInsetsGeometry? padding, double leadingSize = _kNotchedLeadingSize, double leadingToTitle = _kNotchedLeadingToTitle})
Creates a notched iOS-style list tile like the tiles in iOS Notes app or Reminders app.
const

Properties

additionalInfo Widget?
Similar to subtitleBuilder, an additionalInfo is used to display additional information. However, instead of being displayed below titleBuilder, it is displayed on the right, before trailing. Usually a Text widget.
final
backgroundColor Color?
The backgroundColor of the tile in normal state. Once the tile is tapped, the background color switches to backgroundColorActivated. It is set to match the iOS look by default.
final
backgroundColorActivated Color?
The backgroundColorActivated is the background color of the tile after the tile was tapped. It is set to match the iOS look by default.
final
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
leading Widget?
A widget displayed at the start of the EnhancedCupertinoListTile. This is typically an Icon or an Image.
final
leadingSize double
The leadingSize is used to constrain the width and height of leading widget.
final
leadingToTitle double
The horizontal space between leading widget and title.
final
onTap FutureOr<void> Function()?
The onTap function is called when a user taps on EnhancedCupertinoListTile. If left null, the EnhancedCupertinoListTile will not react on taps. If this is a Future<void> Function(), then the EnhancedCupertinoListTile remains activated until the returned future is awaited. This is according to iOS behavior. However, if this function is a void Function(), then the tile is active only for the duration of invocation.
final
padding EdgeInsetsGeometry?
Padding of the content inside EnhancedCupertinoListTile.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
subtitleBuilder WidgetBuilder?
A subtitleBuilder is used to display additional information. It is located below titleBuilder. Usually a Text widget.
final
titleBuilder WidgetBuilder
A titleBuilder is used to convey the central information. Usually a Text.
final
trailing Widget?
A widget displayed at the end of the EnhancedCupertinoListTile. This is usually a right chevron icon (e.g. CupertinoListTileChevron), or an Icon.
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<EnhancedCupertinoListTile>
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

Operators

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