Dart 如何在Flatter应用程序中返回应用程序的第一页?

Dart 如何在Flatter应用程序中返回应用程序的第一页?,dart,flutter,Dart,Flutter,因此,我创建了一个应用程序,它有4个页面,然后是一个webview,所以每当用户从webview注销时,我都会按启动屏幕。 我希望我的应用程序转到我尝试过的第一页 Navigator.of(context).pushNamed('/welcomeScreen'); Navigator.popUntil(context,ModalRoute.withName('/welcomeScreen')); 但是没有运气。我想这可能是因为webview。 这是我的路线 final routes = { '

因此,我创建了一个应用程序,它有4个页面,然后是一个webview,所以每当用户从webview注销时,我都会按启动屏幕。 我希望我的应用程序转到我尝试过的第一页

Navigator.of(context).pushNamed('/welcomeScreen');
Navigator.popUntil(context,ModalRoute.withName('/welcomeScreen'));
但是没有运气。我想这可能是因为webview。 这是我的路线

final routes = {
'/login': (BuildContext context) => new LoginScreen(),
'/home': (BuildContext context) => new HomeScreen(),
'/welcomeScreen':(BuildContext context) => new WelcomeScreen(),
'/email': (BuildContext context) => new EmailScreen(),
'/webview': (BuildContext context) => new WebviewScreen()
};

`

此函数将设置页面根页面,以便在注销情况下使用

Navigator.pushAndRemoveUnitl
我猜你在找什么

void makeRoutePage({BuildContext context, Widget pageRef}) {
  Navigator.pushAndRemoveUntil(
      context,
      MaterialPageRoute(builder: (context) => pageRef),
      (Route<dynamic> route) => false);
}

另一种解决方案可以是
Navigator.popintil(context,ModalRoute.withName('/')将从堆栈中弹出除初始屏幕以外的所有屏幕。

只需在任何按钮操作中使用此代码,它将从任何其他页面将U重定向到主屏幕/主页

Navigator.of(context).pushNamedAndRemoveUntil('/', (Route<dynamic> route) => false);
Navigator.of(context).pushName和removeUntil(“/”,(路由)=>false);

您希望返回所有屏幕,直到堆栈中的第一个屏幕,所以您可以使用的最佳语句是:

Navigator.popUntil(context, (Route<dynamic> predicate) => predicate.isFirst);
Navigator.popintil(上下文,(路由谓词)=>predicate.isFirst);

以下答案对您有用吗?如果是,你能接受答案吗!
Navigator.popUntil(context, (Route<dynamic> predicate) => predicate.isFirst);