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

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


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

FlatButton.icon(
              onPressed: () => {
                    
                    _auth.signOutGoogle(),
                    Navigator.push(
                        context,
                        MaterialPageRoute(
                            builder: (context) =>  SignIn()))
                  },
              icon: Icon(Icons.exit_to_app),
              label: Text('Sign Out'))

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

void main() {
  SystemChrome.setEnabledSystemUIOverlays([]);
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        StreamProvider.value(value: AuthService().user),
      ],
      child: Consumer<User>(
          builder: (ctx, auth, _) => MaterialApp(
                title: 'Flutter Demo',
                theme: ThemeData(
                  visualDensity: VisualDensity.adaptivePlatformDensity,
                ),
                home: Wrapper(),
                routes: {
                  '/homescreen': (ctx) => HomeScreen(),
                  '/signin': (ctx) => SignIn(),
                  '/dashboard': (ctx) => DashBoard(),
                  '/status': (ctx) => Status()
                },
              )),
    );
  }
}


谢谢

sdnqo3pr

sdnqo3pr1#

FlatButton.icon(
          onPressed: () => {
                    
           _auth.signOutGoogle(),

      Navigator.pushAndRemoveUntil(
      context,
      MaterialPageRoute(builder: (context) => SignIn()),
     (Route<dynamic> route) => false,);

          
                  },
              icon: Icon(Icons.exit_to_app),
              label: Text('Sign Out'))

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

FlatButton.icon(
              onPressed: () => {
                        
               _auth.signOutGoogle(),

                 Navigator.of(context, rootNavigator: true).pushReplacement(
            MaterialPageRoute(builder: (context) => SignIn()));
              
                      },
                  icon: Icon(Icons.exit_to_app),
                  label: Text('Sign Out'))

相关问题