Методы создания меню темы Flutter Material с примерами кода

Чтобы создать меню темы Flutter Material, вы можете использовать различные методы в зависимости от ваших конкретных требований. Вот некоторые часто используемые методы и примеры кода:

Метод 1: использование PopupMenuButton

PopupMenuButton<int>(
  itemBuilder: (BuildContext context) => [
    PopupMenuItem<int>(
      value: 1,
      child: Text('Option 1'),
    ),
    PopupMenuItem<int>(
      value: 2,
      child: Text('Option 2'),
    ),
    PopupMenuItem<int>(
      value: 3,
      child: Text('Option 3'),
    ),
  ],
  onSelected: (value) {
    // Handle menu item selection
    switch (value) {
      case 1:
        // Handle Option 1 selection
        break;
      case 2:
        // Handle Option 2 selection
        break;
      case 3:
        // Handle Option 3 selection
        break;
    }
  },
)

Метод 2: использование DropdownButton

DropdownButton<String>(
  value: selectedOption,
  items: [
    DropdownMenuItem<String>(
      value: 'Option 1',
      child: Text('Option 1'),
    ),
    DropdownMenuItem<String>(
      value: 'Option 2',
      child: Text('Option 2'),
    ),
    DropdownMenuItem<String>(
      value: 'Option 3',
      child: Text('Option 3'),
    ),
  ],
  onChanged: (value) {
    // Handle menu item selection
    setState(() {
      selectedOption = value;
    });
  },
)

Метод 3: использование ListTile и showModalBottomSheet

void _showMenu(BuildContext context) {
  showModalBottomSheet(
    context: context,
    builder: (BuildContext context) {
      return Column(
        mainAxisSize: MainAxisSize.min,
        children: <Widget>[
          ListTile(
            leading: Icon(Icons.add),
            title: Text('Option 1'),
            onTap: () {
              // Handle Option 1 selection
              Navigator.pop(context);
            },
          ),
          ListTile(
            leading: Icon(Icons.edit),
            title: Text('Option 2'),
            onTap: () {
              // Handle Option 2 selection
              Navigator.pop(context);
            },
          ),
          ListTile(
            leading: Icon(Icons.delete),
            title: Text('Option 3'),
            onTap: () {
              // Handle Option 3 selection
              Navigator.pop(context);
            },
          ),
        ],
      );
    },
  );
}

Это всего лишь несколько примеров создания пунктов меню с помощью темы Flutter Material. Вы можете выбрать метод, который лучше всего соответствует потребностям вашего приложения.