Flutter - PopupMenuItem - 如何获取值

Flutter - PopupMenuItem - how get value

我有一个列表,当您单击 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 时,我们得到 PopupMenuItem

value

编辑: 如果你在Flutter的网页上查看documentationshowMenu函数,你会看到它是returns一个Future,所以我在前面使用了await showMenu 函数。