Выпадающий список во Flutter с использованием значка

Я хочу реализовать выпадающий список во Flutter для определенного значка и применить к нему GestureDetector в AppBar. Код для него,

AppBar(
   actions: <Widget>[
      Padding(
        padding: const EdgeInsets.fromLTRB(4.0, 4.0, 0, 4.0),
        child: Image.network(
            "Some Image Url"),
      ),
   GestureDetector(
        onTap: () {
//       I want to implement the Dropdown List here.
        },
        child: Padding(
          padding: const EdgeInsets.all(0.0),
          child: Icon(Icons.arrow_drop_down),
        ),
      ),
     ],
    )

person Devansh Baldwa    schedule 22.02.2020    source источник
comment
Что вы подразумеваете под выпадающим списком во Flutter без использования DropdownButton? Вы ищете ExpansionTile?   -  person John Joe    schedule 22.02.2020
comment
Выпадающий список для выбора, нажав на этот значок.   -  person Devansh Baldwa    schedule 22.02.2020
comment
Я пытался использовать кнопку раскрывающегося списка, но она занимала место, а пользовательский интерфейс выглядел не очень хорошо, поэтому я хочу реализовать только эту иконку.   -  person Devansh Baldwa    schedule 22.02.2020
comment
Я не думаю, что вы можете сделать это без использования dropDownButton.   -  person John Joe    schedule 22.02.2020
comment
Возможно, есть выход из этой проблемы. Давайте подождем и посмотрим, что другие должны ответить   -  person Devansh Baldwa    schedule 22.02.2020
comment
Кроме того, пожалуйста, ответьте, если вы знаете, как я могу использовать DropdownButton, чтобы он не занимал места, то есть он должен просто занимать место стрелки вниз, на которой я могу щелкнуть, чтобы получить DropdownList...   -  person Devansh Baldwa    schedule 22.02.2020
comment
любое обновление для этого?   -  person John Joe    schedule 28.02.2020
comment
Еще нет. Я все еще не знаю, как это сделать.   -  person Devansh Baldwa    schedule 28.02.2020
comment
Вы можете сделать больше, если настроите его. Подробнее см. здесь.   -  person Doan Bui    schedule 09.11.2020


Ответы (2)


Самый простой способ — использовать PopupMenuButton. пример кода:

AppBar(
    title: Text('Awesome appbar'),
    actions: [
      IconButton(
        icon: Icon(MdiIcons.pencil),
        iconSize: 21,
        onPressed: () {
          print('I want to edit');
        },
      ),
      PopupMenuButton<String>(
        icon: Icon(Icons.filter_list),
        onSelected: (String result) {
          switch (result) {
            case 'filter1':
              print('filter 1 clicked');
              break;
            case 'filter2':
              print('filter 2 clicked');
              break;
            case 'clearFilters':
              print('Clear filters');
              break;
            default:
          }
        },
        itemBuilder: (BuildContext context) => <PopupMenuEntry<String>>[
          const PopupMenuItem<String>(
            value: 'filter1',
            child: Text('Filter 1'),
          ),
          const PopupMenuItem<String>(
            value: 'filter2',
            child: Text('Filter 2'),
          ),
          const PopupMenuItem<String>(
            value: 'clearFilters',
            child: Text('Clear filters'),
          ),
        ],
      ),
      PopupMenuButton<String>(
        onSelected: (String result) {
          switch (result) {
            case 'option1':
              print('option 1 clicked');
              break;
            case 'option2':
              print('option 2 clicked');
              break;
            case 'delete':
              print('I want to delete');
              break;
            default:
          }
        },
        itemBuilder: (BuildContext context) => <PopupMenuEntry<String>>[
          const PopupMenuItem<String>(
            value: 'option1',
            child: Text('Option 1'),
          ),
          const PopupMenuItem<String>(
            value: 'option2',
            child: Text('Option 2'),
          ),
          const PopupMenuItem<String>(
            value: 'delete',
            child: Text('Delete'),
          ),
        ],
      )
    ],
  );
person alfiepoleon    schedule 12.03.2021

Я думаю, кнопка всплывающего меню, вероятно, то, что вам нужно.

person John Joe    schedule 22.02.2020
comment
Даже кнопка всплывающего меню займет место, верно? Итак, как мне реализовать это на иконке? - person Devansh Baldwa; 28.02.2020