import 'package:flutter/material.dart'; class CustomPopupMenu extends StatelessWidget { final Function(dynamic) onSelected; final Map<int, Widget> children; const CustomPopupMenu({ Key? key, required this.onSelected, required this.children, }) : super(key: key); @override Widget build(BuildContext context) { return Theme( data: Theme.of(context).copyWith(useMaterial3: false), child: PopupMenuButton<int>( icon: Icon( Icons.more_vert, color: Theme.of(context).colorScheme.secondary, ), onSelected: onSelected, itemBuilder: (context) => children.entries .map( (entry) => PopupMenuItem<int>( padding: const EdgeInsets.all(16.0).copyWith(right: 20), value: entry.key, child: entry.value, ), ) .toList(), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(24), ), color: Theme.of(context).colorScheme.secondaryContainer, position: PopupMenuPosition.under, ), ); } }