Я пытаюсь получить всплывающее меню под ListTile. title отображает описание, subtitle отображает выбранное значение с некоторым сообщением, а onTap открывает всплывающее меню, в котором пользователь может выбрать значение.
Я попытался поместить DropdownButtonHideUnderline в subtitle, но это показывает стрелку и не отвечает на ListTileonTab, очевидно.
Как я могу получить всплывающее меню на ListTile?
Не то чтобы я не прав, но я понятия не имею, возможно ли это, и если да, то как с этим бороться.
Отвечает ли это на ваш вопрос? Как открыть PopupMenuButton?





Может быть, вы можете попробовать PopuMenuButton,
PopupMenuButton<String>(
onSelected: (String value) {
setState(() {
_selection = value;
});
},
child: ListTile(
leading: IconButton(
icon: Icon(Icons.add_alarm),
onPressed: () {
print('Hello world');
},
),
title: Text('Title'),
subtitle: Column(
children: <Widget>[
Text('Sub title'),
Text(_selection == null ? 'Nothing selected yet' : _selection.toString()),
],
),
trailing: Icon(Icons.account_circle),
),
itemBuilder: (BuildContext context) => <PopupMenuEntry<String>>[
const PopupMenuItem<String>(
value: 'Value1',
child: Text('Choose value 1'),
),
const PopupMenuItem<String>(
value: 'Value2',
child: Text('Choose value 2'),
),
const PopupMenuItem<String>(
value: 'Value3',
child: Text('Choose value 3'),
),
],
)
Взгляните на Как открыть PopupMenuButton?
Это просто идеально.
Спасибо, я не знал, что дочернее свойство полностью заменяет содержимое кнопки!
Есть ли способ сделать это долгим нажатием, а не просто нажатием?
@DanielVilela, если вы не нашли решение, оно есть в ссылке, которой поделился пользователь1111.
Не могли бы вы поделиться фрагментом кода, чтобы я мог помочь именно там, где вы ошибаетесь?