showMenu method
Shows the dropdown menu
Implementation
Future<void> showMenu(BuildContext context) async {
final PopupMenuThemeData popupMenuTheme = PopupMenuTheme.of(context);
final RenderBox buttonRenderBox = context.findRenderObject()! as RenderBox;
final RenderBox overlay =
Navigator.of(context).overlay!.context.findRenderObject()! as RenderBox;
final Offset offset;
offset = const Offset(0.0, -.5);
final RelativeRect position = RelativeRect.fromRect(
Rect.fromPoints(
buttonRenderBox.localToGlobal(offset, ancestor: overlay),
buttonRenderBox.localToGlobal(
buttonRenderBox.size.bottomRight(Offset.zero) + offset,
ancestor: overlay),
),
Offset.zero & overlay.size,
);
await Navigator.of(context).push(_SelectingButtonRouter(
position: RelativeRect.fromLTRB(
position.left,
position.top + (this.offset?.dy ?? 0),
position.right,
position.bottom),
elevation: 5,
barrierLabel:
MaterialLocalizations.of(context).modalBarrierDismissLabel,
shape: popupMenuTheme.shape,
color: popupMenuTheme.color,
capturedThemes: InheritedTheme.capture(
from: context, to: Navigator.of(context).context),
child: child(context)));
}