如何解决导航到其他页面并返回后未显示Flutter Popupmenu
所以我有一个popupmenu,可以在我的代码中很好地实现,但是主要的问题是,如果我导航到具有bottomnavigation的几页,然后将页面返回到popupmenu的页面以单击popupmenu冻结并且不显示,直到我终止该应用,然后重新开始。下面是我的popupmenu代码:
void stateChanged(bool isShow) {
print('menu is ${isShow ? 'showing' : 'closed'}');
}
void onClickMenu(MenuItemProvider item) {
print('Click menu -> ${item.menuTitle}');
}
void ondismiss() {
print('Menu is dismiss');
}
PopupMenu.context = context;
void showPopup(Offset offset) {
PopupMenu menu = PopupMenu(
// backgroundColor: Colors.teal,// lineColor: Colors.tealAccent,maxColumn: 3,items: [
MenuItem(title: 'Add User',image: Icon(Icons.person_add,color: Colors.white)),MenuItem(title: 'All',image: Icon(Icons.group_work,MenuItem(title: 'Local Employee',image: Icon(Icons.group,color: Colors.white,)),MenuItem(title: 'Hired Employee',image: Icon(Icons.person_pin,MenuItem(title: 'Interview Form',image: Icon(Icons.format_indent_increase,],onClickMenu: onClickMenu,stateChanged: stateChanged,ondismiss: ondismiss);
menu.show(rect: Rect.fromPoints(offset,offset));
}
我的onclick如下:
GestureDetector(
onTapUp: (TapUpDetails details) {
showPopup(details.globalPosition);
},child:Container(
decoration: Boxdecoration(
border: Border.all(
color: Colors.grey,),borderRadius: BorderRadius.all(Radius.circular(5))
),width: 60.0,// color: Colors.red,child: Column(
children: <Widget>[
SizedBox(height: 2,Icon(Icons.group,size: 20,SizedBox(height: 2,Expanded(child:Center(child:Text("Employee",style: TextStyle(fontFamily: 'Montserrat',fontSize: 8.0,color: Colors.black),)
],)
)),
我的底部导航栏如下:
return Scaffold(
body:CupertinoTabScaffold(
tabBar: CupertinoTabBar(
//backgroundColor: Colors.black,currentIndex: _currentIndex,onTap: onTabTapped,items: [
BottomNavigationBarItem(
icon: Icon(Icons.home,title: Text("Home"),BottomNavigationBarItem(
icon: Icon(Icons.event,title: Text("Event"),BottomNavigationBarItem(
icon: Icon(Icons.announcement,title: Text("Announcement"),BottomNavigationBarItem(
icon: Icon(Icons.notifications,title: Text("Notification"),tabBuilder: (BuildContext context,int index) {
return CupertinoTabView(
builder: (BuildContext context) {
return SafeArea(
top: false,bottom: false,child: CupertinoApp(
home: CupertinopageScaffold(
resizetoAvoidBottomInset: false,child: _children[_currentIndex],);
},);
}
));
void onTabTapped(int index) {
setState(() {
_currentIndex = index;
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。