如何推送和弹出直到颤动中的特定路线

Man*_*eel 2 navigation dart flutter

我正在制作一个应用程序,在我的注销对话框中,我得到了这个代码。

  Navigator.of(context).pushAndRemoveUntil(
                    MaterialPageRoute(builder: (context) {
                  return AuthScreen();
                }), (route) {
                  // if( route is (MaterialPageRoute('/')))
                  // {

                  // }
                  // print(route);
                  return false;
                });


Run Code Online (Sandbox Code Playgroud)

我只想推送 AuthScreen 并删除,直到路由屏幕。怎么做?

因此,在此代码之后,堆栈包含根屏幕和 AuthScreen。

Bac*_*ach 12

你可以这样做:

Navigator.pushAndRemoveUntil(
    context,   
    MaterialPageRoute(builder: (BuildContext context) => AuthScreen()), 
    ModalRoute.withName('/') // Replace this with your root screen's route name (usually '/')
);
Run Code Online (Sandbox Code Playgroud)

您可以尝试的另一种方法是:

Navigator.pushAndRemoveUntil(
  context,
  MaterialPageRoute(builder: (BuildContext context) => AuthScreen()),
  (Route<dynamic> route) => route is RootPage (your root page's type)
);
Run Code Online (Sandbox Code Playgroud)

还有一个:

Navigator.pushAndRemoveUntil(
  context,
  MaterialPageRoute(builder: (BuildContext context) => AuthScreen()),
  (Route<dynamic> route) => route is RootPage (your root page's type)
);
Run Code Online (Sandbox Code Playgroud)

示例应用程序:

Navigator.pushAndRemoveUntil(
  context,
  MaterialPageRoute(builder: (BuildContext context) => AuthScreen()),
  (Route<dynamic> route) => route.isFirst (pop until your first page)
);
Run Code Online (Sandbox Code Playgroud)