导航到其他页面并返回后未显示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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...