flutter - PopupMenuItem 内的导航器不起作用
问题描述
尝试在 aNavigator
的onTap
属性内调用PopupMenuItem
时不起作用:
PopupMenuButton(itemBuilder: (BuildContext context) {
return [
PopupMenuItem(
child: Text('Edit'),
onTap: () => Navigator.of(context)
.push(MaterialPageRoute(builder: (context) => EditorPage())),
),
];
}),
解决方案
弹出菜单在调用回调之前弹出自己的路由,解决此问题的一种方法是使用自身的onSelected
属性PopupMenuButton
:
//---add onSelected to your PopupMenuButton
PopupMenuButton(onSelected: (result) {
if (result == 0) {
Navigator.of(context)
.push(MaterialPageRoute(builder: (context) => EditorPage()));
}
}, itemBuilder: (BuildContext context) {
return [
PopupMenuItem(
value: 0, //---add this line
child: Text('Edit'),
),
];
}),
推荐阅读
- powershell - 更改每个 PowerShell 会话的语言
- javascript - 使用 reduce 重新映射具有子数组的数组
- sum - 找到两个最小的整数,它们相加时小于 x 但相乘时大于 x
- javascript - 如何在函数范围内初始化变量并避免全局范围?
- c++ - 在 C++ 中禁用断言宏
- javascript - 调用异步请求时如何避免重复?
- swift - Swift 5.2 Xcode 11.4 Vapor 4.0.0 我应该如何在我的模型中编码 PK?
- r - 如何将txt文件转换为漂亮的数据框
- html - 用户提交后如何执行 HTML 代码
- c++ - 井字游戏 Minimax 算法具有奇怪的行为 (C++)