【问题标题】:Navigation Drawer not going to previous pages when back is pressed按下后退时,导航抽屉不会转到前一页
【发布时间】:2020-04-07 07:37:40
【问题描述】:

我的仪表板页面中有一个导航抽屉。当我单击每个项目时,抽屉上的 listTiles 很少,它会打开一个新页面。当我打开几个页面时,当我单击后退按钮时,应用程序会关闭完全。我想查看之前打开的页面,然后在堆栈中找到最后一页时关闭应用程序。

final drawerItems = [
new DrawerItem("Home", Icons.home),
new DrawerItem("Profile", Icons.person),
new DrawerItem("Change Password", Icons.lock),
new DrawerItem("Link CCID", Icons.calendar_view_day),
new DrawerItem("Settings", Icons.settings),
new DrawerItem("Allergies", Icons.opacity),
new DrawerItem("Logout", Icons.power_settings_new),
];

 _getDrawerItemScreen(int  pos) {
debugPrint("Position $pos");
if(pos==0)
{
  setState(() {
    title="Home";
  });
  return new Home(drawerItem: drawerItems[_selectedIndex]);
}
else if(pos==1)
{
  setState(() {
    title="My Profile";
  });
  return new ProfilePage(drawerItem: drawerItems[_selectedIndex],title: "My Profile",);
}
else if(pos==2)
{
  setState(() {
    title="Change Password";
  });
  return new ChangePassword(drawerItem: drawerItems[_selectedIndex],title: "Change Password",);
}
else if(pos==3)
{
  setState(() {
    title="LinkCCid";
  });
  return new LinkCcid(drawerItem: drawerItems[_selectedIndex],title: "LinkCCid",);
}
else if(pos==4)
{
  setState(() {
    title="Settings";
  });
//  Navigator.push(context, MaterialPageRoute(builder: (context) =>Settings(drawerItem: drawerItems[_selectedIndex],title: "Settings",)));
  return new Settings(drawerItem: drawerItems[_selectedIndex],title: "Settings",);
}
else if(pos==5)
{
  setState(() {
    title="Allergies";
  });
  return new Allergies(drawerItem: drawerItems[_selectedIndex],title: "Allergies",);
}
else if(pos==6)
{
  _logout();
}
}


 _onSelectItem(int index) {
setState(() {
  _selectedIndex = index;
  _getDrawerItemScreen(_selectedIndex);
});
Navigator.of(context).pop(); // close the drawer

}

【问题讨论】:

    标签: flutter


    【解决方案1】:

    您需要使用Navigator 并使用它的push() 方法在Navigator 堆栈中添加新页面。

    你可以查看官方文档来实现一个基本的导航:https://flutter.dev/docs/cookbook/navigation/navigation-basics

    但是,我认为不建议从导航器堆栈中的抽屉菜单条目添加页面。用户可以将大量页面添加到堆栈中,并且必须多次按下后退按钮才能退出应用程序。

    【讨论】:

      猜你喜欢
      • 2015-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      • 2015-01-06
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多