FItem constructor
FItem({
- required Widget title,
- FItemStyle style()?,
- bool? enabled,
- bool selected = false,
- String? semanticsLabel,
- bool autofocus = false,
- FocusNode? focusNode,
- ValueChanged<
bool> ? onFocusChange, - ValueChanged<
bool> ? onHoverChange, - ValueChanged<
FWidgetStatesDelta> ? onStateChange, - VoidCallback? onPress,
- VoidCallback? onLongPress,
- VoidCallback? onSecondaryPress,
- VoidCallback? onSecondaryLongPress,
- Map<
ShortcutActivator, Intent> ? shortcuts, - Map<
Type, Action< ? actions,Intent> > - Widget? prefix,
- Widget? subtitle,
- Widget? details,
- Widget? suffix,
- Key? key,
Creates a FItem.
Assuming LTR locale:
-----------------------------------------------------
| [prefix] [title] [details] [suffix] |
| [subtitle] |
-----------------------------------------------------
The order is reversed for RTL locales.
Overflow behavior
FItem has custom layout behavior to handle overflow of its content. If details
is text, it is truncated,
else title
and subtitle
are truncated.
Why isn't my title
subtitle
, or details
rendered?
Using widgets that try to fill the available space, such as Expanded or FTextField, as details
will cause
the title
and subtitle
to never be rendered.
Use FItem.raw in these cases.
Implementation
FItem({
required Widget title,
this.style,
this.enabled,
this.selected = false,
this.semanticsLabel,
this.autofocus = false,
this.focusNode,
this.onFocusChange,
this.onHoverChange,
this.onStateChange,
this.onPress,
this.onLongPress,
this.onSecondaryPress,
this.onSecondaryLongPress,
this.shortcuts,
this.actions,
Widget? prefix,
Widget? subtitle,
Widget? details,
Widget? suffix,
super.key,
}) : _builder = ((context, style, top, bottom, states, color, width, divider) => ItemContent(
style: style.contentStyle,
margin: style.margin,
top: top,
bottom: bottom,
states: states,
dividerColor: color,
dividerWidth: width,
dividerType: divider,
prefix: prefix,
title: title,
subtitle: subtitle,
details: details,
suffix: suffix,
));