Чтобы создать меню темы Flutter Material, вы можете использовать различные методы в зависимости от ваших конкретных требований. Вот некоторые часто используемые методы и примеры кода:
Метод 1: использование PopupMenuButton
PopupMenuButton<int>(
itemBuilder: (BuildContext context) => [
PopupMenuItem<int>(
value: 1,
child: Text('Option 1'),
),
PopupMenuItem<int>(
value: 2,
child: Text('Option 2'),
),
PopupMenuItem<int>(
value: 3,
child: Text('Option 3'),
),
],
onSelected: (value) {
// Handle menu item selection
switch (value) {
case 1:
// Handle Option 1 selection
break;
case 2:
// Handle Option 2 selection
break;
case 3:
// Handle Option 3 selection
break;
}
},
)
Метод 2: использование DropdownButton
DropdownButton<String>(
value: selectedOption,
items: [
DropdownMenuItem<String>(
value: 'Option 1',
child: Text('Option 1'),
),
DropdownMenuItem<String>(
value: 'Option 2',
child: Text('Option 2'),
),
DropdownMenuItem<String>(
value: 'Option 3',
child: Text('Option 3'),
),
],
onChanged: (value) {
// Handle menu item selection
setState(() {
selectedOption = value;
});
},
)
Метод 3: использование ListTile и showModalBottomSheet
void _showMenu(BuildContext context) {
showModalBottomSheet(
context: context,
builder: (BuildContext context) {
return Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
ListTile(
leading: Icon(Icons.add),
title: Text('Option 1'),
onTap: () {
// Handle Option 1 selection
Navigator.pop(context);
},
),
ListTile(
leading: Icon(Icons.edit),
title: Text('Option 2'),
onTap: () {
// Handle Option 2 selection
Navigator.pop(context);
},
),
ListTile(
leading: Icon(Icons.delete),
title: Text('Option 3'),
onTap: () {
// Handle Option 3 selection
Navigator.pop(context);
},
),
],
);
},
);
}
Это всего лишь несколько примеров создания пунктов меню с помощью темы Flutter Material. Вы можете выбрать метод, который лучше всего соответствует потребностям вашего приложения.