customWidget static method
Widget
customWidget(
- BuildContext context,
- M3EMenuWidget item, {
- required bool autofocus,
- required bool closeOnSelect,
- required M3EMenuSelectCallback onSelect,
customWidget.
Implementation
static Widget customWidget(
BuildContext context,
M3EMenuWidget item, {
required bool autofocus,
required bool closeOnSelect,
required M3EMenuTheme menuTheme,
required M3EMenuSelectCallback onSelect,
}) {
final scheme = M3ETheme.of(context).colorScheme;
final style = M3EMenuStyleScope.styleOf(context);
final palette =
M3EMenuStyleScope.colorsOf(context) ?? menuTheme.colors(scheme, style);
final radius = menuTheme.itemShape(item.shape);
final background = item.selected
? palette.selectedContainer
: const Color(0x00000000);
return Padding(
padding: EdgeInsets.symmetric(vertical: menuTheme.itemGap / 2),
child: M3ETappable(
enabled: item.enabled,
autofocus: autofocus,
semanticLabel: item.semanticLabel,
onTap: item.enabled
? () {
item.onPressed?.call();
if (closeOnSelect || item.value != null) {
onSelect(item.value);
}
}
: null,
builder: (BuildContext context, M3EInteractionState state) {
return _customWidgetBody(
context,
item,
menuTheme: menuTheme,
scheme: scheme,
style: style,
palette: palette,
radius: radius,
background: background,
state: state,
);
},
),
);
}