当您单击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时,我们得到了该valuePopupMenuItem
flutter - Flutter-PopupMenuItem-如何获得值(value)-LMLPHP

编辑:
如果在Flutter的网页上检查documentation中的showMenu函数,您会看到它返回了Future,这就是为什么我在await函数之前使用showMenu的原因。

07-26 09:33