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

Функция showMenu

Функция showMenu рисует PopupMenuItem под курсором или кнопкой. Контекст - context, прямоугольник - position, пункты - items. Возвращает выбранное value.

Синтаксис

showMenu( context: context, position: RelativeRect.fromLTRB(100, 200, 100, 0), items: [ PopupMenuItem(value: 1, child: Text('abcde')), ], )

Параметры

Параметр Описание
context Контекст overlay.
position Где привязать меню на экране.
items Список PopupMenuEntry.

Пример

Давайте откроем меню по долгому нажатию:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: MenuPage())); } class MenuPage extends StatelessWidget { const MenuPage({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: Center( child: GestureDetector( onLongPress: () { final box = context.findRenderObject() as RenderBox; final pos = box.localToGlobal(Offset.zero); showMenu( context: context, position: RelativeRect.fromLTRB(pos.dx, pos.dy, pos.dx, pos.dy), items: [ PopupMenuItem(value: 'a', child: Text('abcde')), ], ); }, child: Text('12345'), ), ), ); } }

Долгое нажатие откроет пункт 'abcde'.

Пример

Давайте откроем меню из IconButton:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: MenuPage2())); } class MenuPage2 extends StatelessWidget { const MenuPage2({super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( actions: [ IconButton( onPressed: () { showMenu( context: context, position: RelativeRect.fill, items: [ PopupMenuItem(child: Text('abcde')), ], ); }, icon: Icon(Icons.more_vert), ), ], ), ); } }

Три точки в AppBar откроют всплывающее меню.

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

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