GlassListTile class
A glass-aesthetic list tile following iOS 26 grouped row design.
GlassListTile is the glass design system's equivalent of Flutter's ListTile — a clean, stateless item with no knowledge of its position.
Divider rendering is the responsibility of the parent container: GlassGroupedSection automatically injects GlassDividers between tiles. For standalone column layouts, compose GlassDivider explicitly, as you would with Flutter's built-in ListTile + Divider pattern.
Usage inside GlassGroupedSection (recommended):
GlassGroupedSection(
header: const Text('NETWORK'),
children: [
GlassListTile(
leading: Icon(CupertinoIcons.wifi, color: CupertinoColors.white),
title: Text('Wi-Fi'),
trailing: GlassListTile.chevron,
),
GlassListTile(
leading: Icon(CupertinoIcons.bluetooth, color: CupertinoColors.white),
title: Text('Bluetooth'),
trailing: GlassListTile.chevron,
),
],
)
Standalone tile (own glass layer):
GlassListTile.standalone(
leading: Icon(CupertinoIcons.star_fill, color: Colors.yellow),
title: Text('Featured'),
onTap: () { },
)
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- GlassListTile
- Available extensions
Constructors
-
GlassListTile({Key? key, Widget? leading, required Widget title, Widget? subtitle, Widget? trailing, VoidCallback? onTap, VoidCallback? onLongPress, EdgeInsetsGeometry contentPadding = const EdgeInsets.symmetric(horizontal: 16, vertical: 12), Color? leadingIconColor, TextStyle? titleStyle, TextStyle? subtitleStyle, List<
GlassSwipeAction> ? leadingSwipeActions, List<GlassSwipeAction> ? trailingSwipeActions, bool allowsFullSwipe = true, double fullSwipeThreshold = 0.65, double? swipeActionWidth, double? swipeActionButtonDiameter, double? swipeActionButtonSpacing, double? swipeActionHorizontalPadding, GlassSwipeController? swipeController, ValueChanged<GlassSwipeState> ? onSwipeStateChanged, GlassSwipeActionStyle? swipeActionStyle, VoidCallback? onDismissed, List<Widget> ? contextMenuActions, Widget contextMenuPreviewBuilder(BuildContext context)?, VoidCallback? onContextMenuDismissed, Duration? contextMenuLongPressDuration, GlassQuality? contextMenuQuality, LiquidGlassSettings? contextMenuSettings, bool? isEditing, bool canDelete = false, VoidCallback? onDelete, bool canInsert = false, VoidCallback? onInsert, bool canReorder = false, int? reorderIndex, bool canSelect = false, bool isSelected = false, ValueChanged<bool> ? onSelectedChanged}) -
Creates a glass list tile for use inside a GlassContainer.card,
GlassGroupedSection, or other glass container.
Does not create its own glass layer.
const
-
GlassListTile.standalone({Key? key, Widget? leading, required Widget title, Widget? subtitle, Widget? trailing, VoidCallback? onTap, VoidCallback? onLongPress, EdgeInsetsGeometry contentPadding = const EdgeInsets.symmetric(horizontal: 16, vertical: 12), Color? leadingIconColor, TextStyle? titleStyle, TextStyle? subtitleStyle, List<
GlassSwipeAction> ? leadingSwipeActions, List<GlassSwipeAction> ? trailingSwipeActions, bool allowsFullSwipe = true, double fullSwipeThreshold = 0.65, double? swipeActionWidth, double? swipeActionButtonDiameter, double? swipeActionButtonSpacing, double? swipeActionHorizontalPadding, GlassSwipeController? swipeController, ValueChanged<GlassSwipeState> ? onSwipeStateChanged, GlassSwipeActionStyle? swipeActionStyle, VoidCallback? onDismissed, List<Widget> ? contextMenuActions, Widget contextMenuPreviewBuilder(BuildContext context)?, VoidCallback? onContextMenuDismissed, Duration? contextMenuLongPressDuration, GlassQuality? contextMenuQuality, LiquidGlassSettings? contextMenuSettings, bool? isEditing, bool canDelete = false, VoidCallback? onDelete, bool canInsert = false, VoidCallback? onInsert, bool canReorder = false, int? reorderIndex, bool canSelect = false, bool isSelected = false, ValueChanged<bool> ? onSelectedChanged, LiquidGlassSettings? settings, GlassQuality? quality}) -
Creates a standalone glass list tile that manages its own glass layer.
const
Properties
- allowsFullSwipe → bool
-
Whether pulling past fullSwipeThreshold automatically executes the
outermost action on release.
final
- canDelete → bool
-
Whether this tile can be deleted in edit mode.
final
- canInsert → bool
-
Whether this tile acts as an insertion row in edit mode (e.g. "Add Phone").
final
- canReorder → bool
-
Whether this tile can be reordered in edit mode.
final
- canSelect → bool
-
Whether this tile can be selected via a circular checkbox in edit mode.
final
- contentPadding → EdgeInsetsGeometry
-
Padding inside the tile around the content row.
final
-
contextMenuActions
→ List<
Widget> ? -
Optional context menu actions attached to this tile's content.
final
- contextMenuLongPressDuration → Duration?
-
Duration the user must press before the context menu activates.
final
- contextMenuPreviewBuilder → Widget Function(BuildContext context)?
-
Optional custom preview widget builder displayed above the context menu.
final
- contextMenuQuality → GlassQuality?
-
Optional glass quality override for the context menu action platter.
final
- contextMenuSettings → LiquidGlassSettings?
-
Optional liquid glass shader settings for the context menu action platter.
final
- fullSwipeThreshold → double
-
Proportion of tile width required to prime full-swipe execution.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- isEditing → bool?
-
Whether edit mode is explicitly enabled for this tile.
final
- isSelected → bool
-
Whether this tile is currently selected in selection mode.
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- leading → Widget?
-
Widget displayed at the start (left) of the tile.
final
- leadingIconColor → Color?
-
Tint applied to leading icon colour.
final
-
leadingSwipeActions
→ List<
GlassSwipeAction> ? -
Actions revealed when swiping from the leading edge (left in LTR).
final
- onContextMenuDismissed → VoidCallback?
-
Optional callback invoked when the context menu is dismissed.
final
- onDelete → VoidCallback?
-
Callback executed when the deletion badge or delete button is confirmed.
final
- onDismissed → VoidCallback?
-
Optional callback executed when the row is dismissed via full swipe.
final
- onInsert → VoidCallback?
-
Callback executed when the green plus insertion button is tapped.
final
- onLongPress → VoidCallback?
-
Called when the user long-presses the tile.
final
-
onSelectedChanged
→ ValueChanged<
bool> ? -
Callback fired when the selection state changes.
final
-
onSwipeStateChanged
→ ValueChanged<
GlassSwipeState> ? -
Callback fired when the swipe state changes.
final
- onTap → VoidCallback?
-
Called when the user taps the tile.
final
- reorderIndex → int?
-
Index of this item when nested in a ReorderableList or GlassReorderableList.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- subtitle → Widget?
-
Optional secondary content displayed under title.
final
- subtitleStyle → TextStyle?
-
Text style for subtitle.
final
- swipeActionButtonDiameter → double?
-
Optional diameter for circular swipe action buttons.
final
- swipeActionButtonSpacing → double?
-
Optional spacing between adjacent swipe action buttons.
final
- swipeActionHorizontalPadding → double?
-
Optional horizontal padding around swipe action buttons.
final
- swipeActionStyle → GlassSwipeActionStyle?
-
Visual styling applied to the swipe action platter.
final
- swipeActionWidth → double?
-
Base width allocated for each swipe action button.
final
- swipeController → GlassSwipeController?
-
Optional external controller for inspecting or triggering swipe actions.
final
- title → Widget
-
Primary content. Typically a Text widget.
final
- titleStyle → TextStyle?
-
Text style for title.
final
- trailing → Widget?
-
Widget displayed at the end (right) of the tile.
final
-
trailingSwipeActions
→ List<
GlassSwipeAction> ? -
Actions revealed when swiping from the trailing edge (right in LTR).
final
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< GlassListTile> -
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
-
glassContextMenu(
{Key? key, required List< Widget> actions, WidgetBuilder? previewBuilder, bool enabled = true, bool enableHaptics = true, double borderRadius = 32.0, double? previewBorderRadius, double rowBorderRadius = 16.0, BorderRadius? rowCorners, Color? originSlotColor, Color? backgroundColor, LiquidGlassSettings? settings, GlassQuality? quality, double backdropBlur = 0.0, Color? barrierColor, VoidCallback? onOpened, VoidCallback? onDismissed, Duration longPressDuration = const Duration(milliseconds: 700)}) → Widget -
Available on Widget, provided by the GlassContextMenuExtension extension
Wraps this widget in a GlassContextMenu displayingactionson long-press or right-click. -
glassFullScreenCover(
{required bool isPresented, VoidCallback? onDismiss, required WidgetBuilder content, bool enableSwipeToDismiss = true, double dismissThreshold = 140.0, LiquidGlassSettings? settings, GlassQuality? quality}) → Widget -
Available on Widget, provided by the GlassFullScreenCoverExtension extension
Presents a full-viewport modal cover wheneverisPresentedis true. -
Available on Widget, provided by the GlassNavigationTitleExtension extension
Annotates this widget with a navigation title that drives enclosing or descendant GlassAppBar / GlassAppBar.pinned bars (when their explicittitleis null) as well as header accessibility semantics. -
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