dart 为什么当我导航到另一个屏幕时,底部选项卡仍然可见?

20jt8wwn  于 2024-01-03  发布在  其他
关注(0)|答案(1)|浏览(129)


的数据
这是应用程序中的登录页面,登录后,我的应用程序在底部选项卡下还包含2个屏幕,但当我尝试注销并导航回登录屏幕时,它确实进行了导航,但底部选项卡栏仍保留在底部,不在登录页面中。

  1. FlatButton.icon(
  2. onPressed: () => {
  3. _auth.signOutGoogle(),
  4. Navigator.push(
  5. context,
  6. MaterialPageRoute(
  7. builder: (context) => SignIn()))
  8. },
  9. icon: Icon(Icons.exit_to_app),
  10. label: Text('Sign Out'))

字符串
这是我的注销按钮,下面是我的主.dart文件,我在那里定义了所有的路线。

  1. void main() {
  2. SystemChrome.setEnabledSystemUIOverlays([]);
  3. runApp(MyApp());
  4. }
  5. class MyApp extends StatelessWidget {
  6. // This widget is the root of your application.
  7. @override
  8. Widget build(BuildContext context) {
  9. return MultiProvider(
  10. providers: [
  11. StreamProvider.value(value: AuthService().user),
  12. ],
  13. child: Consumer<User>(
  14. builder: (ctx, auth, _) => MaterialApp(
  15. title: 'Flutter Demo',
  16. theme: ThemeData(
  17. visualDensity: VisualDensity.adaptivePlatformDensity,
  18. ),
  19. home: Wrapper(),
  20. routes: {
  21. '/homescreen': (ctx) => HomeScreen(),
  22. '/signin': (ctx) => SignIn(),
  23. '/dashboard': (ctx) => DashBoard(),
  24. '/status': (ctx) => Status()
  25. },
  26. )),
  27. );
  28. }
  29. }


谢谢

sdnqo3pr

sdnqo3pr1#

  1. FlatButton.icon(
  2. onPressed: () => {
  3. _auth.signOutGoogle(),
  4. Navigator.pushAndRemoveUntil(
  5. context,
  6. MaterialPageRoute(builder: (context) => SignIn()),
  7. (Route<dynamic> route) => false,);
  8. },
  9. icon: Icon(Icons.exit_to_app),
  10. label: Text('Sign Out'))

字符串
如果上述解决方案不起作用,请检查第二个解决方案

  1. FlatButton.icon(
  2. onPressed: () => {
  3. _auth.signOutGoogle(),
  4. Navigator.of(context, rootNavigator: true).pushReplacement(
  5. MaterialPageRoute(builder: (context) => SignIn()));
  6. },
  7. icon: Icon(Icons.exit_to_app),
  8. label: Text('Sign Out'))

展开查看全部

相关问题