当您单击BottomNavigationBarItem
中的按钮时,将显示一个列表。这是带有下面代码的showMenu
列表。
但是,如何获得在此列表中选择的值?
showMenu<int>(
context: context,
position: RelativeRect.fromLTRB(1000.0, 600.0, 0.0, 0.0),
items: <PopupMenuItem<int>>[
new PopupMenuItem<int>(child: const Text('Top 1'), value: 1),
new PopupMenuItem<int>(child: const Text('Top 2'), value: 2),
new PopupMenuItem<int>(child: const Text('Top 3'), value: 3),
new PopupMenuItem<int>(child: const Text('Top 4'), value: 4),
],
elevation: 8.0,
);
最佳答案
用户选择PopupMenuItem
后,该值将由showMenu
函数返回。
因此,您可以通过分配一个变量来获取值:
var selected = await showMenu(
context: context,
position: RelativeRect.fromLTRB(1000.0, 600.0, 0.0, 0.0),
items: <PopupMenuItem<int>>[
new PopupMenuItem<int>(child: const Text('Top 1'), value: 1),
new PopupMenuItem<int>(child: const Text('Top 2'), value: 2),
new PopupMenuItem<int>(child: const Text('Top 3'), value: 3),
new PopupMenuItem<int>(child: const Text('Top 4'), value: 4),
]);
您可以在下面看到,当我们打印
selected
时,我们得到了该value
的PopupMenuItem
编辑:
如果在Flutter的网页上检查documentation中的
showMenu
函数,您会看到它返回了Future
,这就是为什么我在await
函数之前使用showMenu
的原因。