【发布时间】:2019-04-19 18:47:28
【问题描述】:
我在appTitle 上有一个简单的PopupMenuButton 实现。这里是:
PopupMenuItem<int> _buildMenuItem(int size) {
return PopupMenuItem<int>(
value: size,
child: Text('${size}x$size'),
);
}
return Scaffold(
appBar: AppBar(
title: Text('Some title'),
actions: <Widget>[
PopupMenuButton<int>(
icon: Icon(Icons.refresh),
onSelected: _canReplay()
? (int size) {
// do something with the size
}
: null,
itemBuilder: (BuildContext context) => <PopupMenuItem<int>>[
_buildMenuItem(3),
_buildMenuItem(4),
_buildMenuItem(5),
],
),
],
),
body: ...
);
已更新 - 我意识到我最初的问题可能不太清楚,所以我在下面重新表述:
我想要实现的是根据应用条件禁用PopupMenuButton。使用上面的代码,我可以启用/禁用onSelected 方法调用,但是,图标外观不会改变。
总而言之 - 我希望整个 PopupMenuButton 及其图标以相同的方式被禁用,IconButton 被禁用,您将 null 传递给它的 onPressed 方法。这样,用户甚至无法按下按钮并调用菜单。
这可以实现吗?
【问题讨论】:
-
你能把你的_buildMenuItem的代码放上来吗?
-
buildMenuItem代码 sn-p 添加
标签: flutter