import 'package:flutter/material.dart'; class AvesPopupMenuButton extends PopupMenuButton { final VoidCallback? onMenuOpened; const AvesPopupMenuButton({ Key? key, required PopupMenuItemBuilder itemBuilder, T? initialValue, PopupMenuItemSelected? onSelected, PopupMenuCanceled? onCanceled, String? tooltip, double? elevation, EdgeInsetsGeometry padding = const EdgeInsets.all(8.0), Widget? child, Widget? icon, Offset offset = Offset.zero, bool enabled = true, ShapeBorder? shape, Color? color, bool? enableFeedback, double? iconSize, this.onMenuOpened, }) : super( key: key, itemBuilder: itemBuilder, initialValue: initialValue, onSelected: onSelected, onCanceled: onCanceled, tooltip: tooltip, elevation: elevation, padding: padding, child: child, icon: icon, iconSize: iconSize, offset: offset, enabled: enabled, shape: shape, color: color, enableFeedback: enableFeedback, ); @override PopupMenuButtonState createState() => _AvesPopupMenuButtonState(); } class _AvesPopupMenuButtonState extends PopupMenuButtonState { @override void showButtonMenu() { (widget as AvesPopupMenuButton).onMenuOpened?.call(); super.showButtonMenu(); } }