Виджет PopupMenuButton
Виджет PopupMenuButton показывает меню из itemBuilder.
Список пунктов строят в itemBuilder,
результат - в onSelected,
иконку кнопки - в icon или child.
Синтаксис
PopupMenuButton<int>(
onSelected: (int value) {},
itemBuilder: (BuildContext context) {
return [
PopupMenuItem(value: 0, child: Text('abcde')),
];
},
)
Параметры
| Параметр | Описание |
|---|---|
itemBuilder |
Строит список PopupMenuEntry.
|
onSelected |
Вызывается с value выбранного пункта. |
icon |
Иконка на кнопке, если child не задан. |
Пример
Давайте поставим меню в AppBar:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
appBar: AppBar(
actions: [
PopupMenuButton<String>(
itemBuilder: (context) => [
PopupMenuItem(value: 'a', child: Text('abcde')),
],
),
],
),
body: Center(child: Text('12345')),
),
),
);
}
Справа на панели кнопка откроет меню с 'abcde'.
Пример
Давайте используем child вместо icon:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: PopupMenuButton(
child: Text('abcde'),
itemBuilder: (context) => [
PopupMenuItem(child: Text('12345')),
],
),
),
),
),
);
}
Надпись 'abcde' откроет выпадающий список.
Смотрите также
-
класс
PopupMenuItem,
пункт меню -
функция
showMenu,
меню без кнопки -
виджет
MenuAnchor,
менюMaterial3 -
виджет
IconButton,
часто оборачиваютPopupMenuButton