Flutter 在Cupertinotabar视图内外导航
这是我在Flitter中的第一个应用程序,现在我的速度有点慢,一切都很顺利 我无法按照我在图像上显示的方式在CupertinoTabBar和我的登录显示(不应该有)之间导航 登录工作正常,当从服务器收到200响应时,使用CupertinoTabBar导航到视图 但是当我按下注销按钮时,我需要返回到loginView,没有任何选项卡 我能够导航回登录的唯一方法是:Flutter 在Cupertinotabar视图内外导航,flutter,flutter-layout,Flutter,Flutter Layout,这是我在Flitter中的第一个应用程序,现在我的速度有点慢,一切都很顺利 我无法按照我在图像上显示的方式在CupertinoTabBar和我的登录显示(不应该有)之间导航 登录工作正常,当从服务器收到200响应时,使用CupertinoTabBar导航到视图 但是当我按下注销按钮时,我需要返回到loginView,没有任何选项卡 我能够导航回登录的唯一方法是: Navigator.push(上下文,CupertinoPageRoute(builder:(context)=>LoginView(
Navigator.push(上下文,CupertinoPageRoute(builder:(context)=>LoginView(),)代码>
这使我的LoginView保持在窗口小部件堆栈中的选项卡栏中,更糟糕的是,如果我再次登录,我最终会在上一个选项卡栏上堆叠另一个选项卡栏
有什么更好的方法可以做到这一点
非常感谢,,
Gabi您可以使用push和moveuntil
弹出堆栈中不需要的路由。您可能希望删除所有这样的路由:
Navigator.of(context).pushandremoveintil(CupertinoPageRoute(builder:(context)=>LoginView(),(r)=>false);
或者,如果您当前的路由是注销,您可以将其替换为登录路由,并且路由堆栈将保持不变:
Navigator.of(context).pushReplacement(CupertinoPageRoute(builder:(context)=>LoginView());
您可以使用push和moveuntil
弹出堆栈中不需要的路由。您可能希望删除所有这样的路由:
Navigator.of(context).pushandremoveintil(CupertinoPageRoute(builder:(context)=>LoginView(),(r)=>false);
或者,如果您当前的路由是注销,您可以将其替换为登录路由,并且路由堆栈将保持不变:
Navigator.of(context).pushReplacement(CupertinoPageRoute(builder:(context)=>LoginView());
谢谢!!你的解决方案不起作用,因为导航器没有问题,我错了。我在登录屏幕上混合了Scaffold和另一个屏幕上的cupertinobstaffold,作为父窗口小部件。现在,我已经简化了脚手架下的Cupertinotabar,它工作得很好。谢谢!!你的解决方案不起作用,因为导航器没有问题,我错了。我在登录屏幕上混合了Scaffold和另一个屏幕上的cupertinobstaffold,作为父窗口小部件。现在,我已经简化了脚手架下的Cupertinotabar,效果很好。