有带有子菜单的 PopupMenuButton。完整代码:
PopupMenuButton<int>(
icon: Icon(Icons.more_horiz),
tooltip: 'Меню задачи',
onSelected: (value) {
changeTaskStatus(value, context, data, ref);
},
itemBuilder: (BuildContext context) => <PopupMenuEntry<int>>[
PopupMenuItem(
child: PopupMenuButton(
tooltip: "Изменить статус",
onSelected: (value) {
changeTaskStatus(value, context, data, ref);
},
child: const Row(
children: [
Text(
'Изменить статус',
style: TextStyle(height: 3),
),
Spacer(),
Icon(Icons.arrow_right)
],
),
itemBuilder: (BuildContext context) =>
<PopupMenuEntry<int>>[
const PopupMenuItem<int>(
value: 0,
child: Text('В работе'),
),
const PopupMenuItem<int>(
value: 1,
child: Text('Выполнена'),
),
const PopupMenuItem<int>(
value: 2,
child: Text('Отменена'),
),
],
),
),
const PopupMenuDivider(),
const PopupMenuItem<int>(
value: 4,
child: Text('Редактировать задачу'),
),
const PopupMenuItem<int>(
value: 3,
child: Text('Удалить'),
),
],
),
最后,我在悬停文本层上突出显示了额外的灰色:
如何删除 PopupMenuButton 子级内的文本小部件上的额外突出显示?
您可以覆盖
highlightColor
和 hoverColor
Theme(
data: Theme.of(context).copyWith(
splashColor: Colors.transparent,//if you want remove splash color
highlightColor: Colors.transparent,
hoverColor: Colors.transparent,
),
child: PopupMenuButton<int>(