首页 > 解决方案 > PopupMenuItem 内的导航器不起作用

问题描述

尝试在 aNavigatoronTap属性内调用PopupMenuItem时不起作用:

PopupMenuButton(itemBuilder: (BuildContext context) {
  return [
    PopupMenuItem(
      child: Text('Edit'),
      onTap: () => Navigator.of(context)
          .push(MaterialPageRoute(builder: (context) => EditorPage())),
    ),
  ];
}),

标签: flutterdart

解决方案


弹出菜单在调用回调之前弹出自己的路由,解决此问题的一种方法是使用自身的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'),
    ),
  ];
}),

推荐阅读