Класс PopupMenuItem
Класс PopupMenuItem кладут в itemBuilder
у
PopupMenuButton
или в items у showMenu.
Подпись - child,
значение результата - value,
включён ли пункт - enabled.
Синтаксис
PopupMenuItem(
value: 'abcde',
child: Text('12345'),
)
Параметры
| Параметр | Описание |
|---|---|
child |
Текст пункта меню. |
value |
Возвращается при выборе. |
Пример
Давайте соберём PopupMenuButton:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: PopupMenuButton<String>(
itemBuilder: (context) {
return [
PopupMenuItem(value: 'a', child: Text('abcde')),
PopupMenuItem(value: 'b', child: Text('12345')),
];
},
),
),
),
),
);
}
По нажатию откроются два PopupMenuItem.
Пример
Давайте обработаем onSelected:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: PopDemo()));
}
class PopDemo extends StatefulWidget
{
const PopDemo({super.key});
@override
State<PopDemo> createState() => _PopDemoState();
}
class _PopDemoState extends State<PopDemo>
{
String label = 'abcde';
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: PopupMenuButton<int>(
onSelected: (v) => setState(() => label = '$v'),
itemBuilder: (context) => [
PopupMenuItem(value: 1, child: Text('12345')),
],
child: Text(label),
),
),
);
}
}
Выбор пункта обновит текст на экране.
Смотрите также
-
виджет
PopupMenuButton,
кнопка с меню -
функция
showMenu,
меню в позиции -
виджет
CheckedPopupMenuItem,
пункт с галочкой -
виджет
PopupMenuDivider,
линия между пунктами