Flutter - PopupMenuItem - как получить значение - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть список, который появляется при нажатии на кнопку в 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),
                            ],

повышение: 8,0,);

1 Ответ

1 голос
/ 17 апреля 2020

После того, как пользователь выберет 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

enter image description here

РЕДАКТИРОВАТЬ : Если вы посмотрите документацию для функции showMenu на веб-странице Flutter, вы увидите, что она возвращает Future, поэтому я использовал await перед showMenu функцией .

...