Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
579 of 1024 menu
◀ ▶

Класс PopupMenuItem

Класс PopupMenuItem кладут в itemBuilder у PopupMenuButton или в items у showMenu. Подпись - child, значение результата - value, включён ли пункт - enabled.

Синтаксис

PopupMenuItem( value: 'abcde', child: Text('12345'), )

Параметры

Параметр Описание
child Текст пункта меню.
value Возвращается при выборе.

Пример

Давайте соберём PopupMenuButton:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: PopupMenuButton<String>( itemBuilder: (context) { return [ PopupMenuItem(value: 'a', child: Text('abcde')), PopupMenuItem(value: 'b', child: Text('12345')), ]; }, ), ), ), ), ); }

По нажатию откроются два PopupMenuItem.

Пример

Давайте обработаем onSelected:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: PopDemo())); } class PopDemo extends StatefulWidget { const PopDemo({super.key}); @override State<PopDemo> createState() => _PopDemoState(); } class _PopDemoState extends State<PopDemo> { String label = 'abcde'; @override Widget build(BuildContext context) { return Scaffold( body: Center( child: PopupMenuButton<int>( onSelected: (v) => setState(() => label = '$v'), itemBuilder: (context) => [ PopupMenuItem(value: 1, child: Text('12345')), ], child: Text(label), ), ), ); } }

Выбор пункта обновит текст на экране.

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить