popupMenuButton<T> static method
SectionTile
popupMenuButton<T>({
- Key? key,
- required String titleText,
- String? subTitle,
- List<
T> ? items, - Icon? icon,
- Icon? popupIcon,
- VoidCallback? onCanceled,
- required Color color,
- List<
PopupMenuEntry< itemBuilder()?,T> > - T? initialValue,
- ValueSetter<
T> ? onSelected, - String? tooltip,
- double? elevation,
- EdgeInsetsGeometry padding = const EdgeInsets.all(8.0),
- Offset offset = Offset.zero,
- bool enabled = true,
- ShapeBorder? shape,
- Color? popUpColor,
- bool? enableFeedback,
- bool dense = false,
Implementation
static SectionTile popupMenuButton<T>({
Key? key,
required String titleText,
String? subTitle,
List<T>? items,
Icon? icon,
Icon? popupIcon,
VoidCallback? onCanceled,
required Color color,
List<PopupMenuEntry<T>> Function(BuildContext)? itemBuilder,
T? initialValue,
ValueSetter<T>? onSelected,
String? tooltip,
double? elevation,
EdgeInsetsGeometry padding = const EdgeInsets.all(8.0),
Offset offset = Offset.zero,
bool enabled = true,
ShapeBorder? shape,
Color? popUpColor,
bool? enableFeedback,
bool dense = false,
}) {
final GlobalKey menuKey = GlobalKey();
popupIcon ??= const Icon(Icons.arrow_drop_down);
itemBuilder ??= (context) {
return items!
.map((e) => PopupMenuItem<T>(
value: e,
child: Text(e.toString()),
))
.toList();
};
return SectionTile(
key: key,
titleText: titleText,
subTitle: subTitle == null ? null : Text(subTitle),
icon: icon,
color: color,
dense: dense,
onTap: () => (menuKey.currentState as PopupMenuButtonState).showButtonMenu(),
trailing: PopupMenuButton<T>(
key: menuKey,
icon: popupIcon,
itemBuilder: itemBuilder,
color: popUpColor,
elevation: elevation,
enableFeedback: enableFeedback,
enabled: enabled,
initialValue: initialValue,
offset: offset,
onCanceled: onCanceled,
onSelected: onSelected,
padding: padding,
shape: shape,
tooltip: tooltip,
),
);
}