首页 > 解决方案 > Flutter - PopupMenuItem - 如何获取价值

问题描述

当您单击 中的按钮时,我会出现一个列表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,
);

标签: flutterdartwidgetpopupmenu

解决方案


用户选择 a 后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 网页上的函数文档showMenu,您会看到它返回 a Future,这就是我await在函数前面使用的原因showMenu


推荐阅读