1

我在 Flutter 的导航中遇到了一个非常奇怪的问题。

我正在使用命名路线。出于这个原因,我为我Navigator提供了一种onGenerateRoute方法:

return MaterialApp(
    debugShowCheckedModeBanner: false,
    title: 'Flutter Demo',
    onGenerateRoute: Routes.onGenerateRoute,
    initialRoute: Routes.ROOT,
  );

这是我的onGenerateRoute

static Route onGenerateRoute(RouteSettings settings) {
    switch (settings.name) {
      case ROOT:
        return MaterialPageRoute(
          builder: (BuildContext context) {
            return MyRootPage();
          },
        );
      case PAGE_1:
        return MaterialPageRoute(
          builder: (context) {
            return MyPage1();
          },
          fullscreenDialog: true,
        );
      case PAGE_2:
        return MaterialPageRoute(
          builder: (context) {
            return MyPage2();
          }
        );
      default:
        break;
    }
    return null;
}

现在,假设我开始我的应用程序登陆ROOT路线,然后通过使用导航到“PAGE_1”

Navigator.of(context).pushNamed(Routes.PAGE_1)

然后我使用以下命令导航到 MyPage2:

`Navigator.of(context).pushNamed(Routes.PAGE_2)`.

这就是问题所在。

我期望MyPage2被推送到MyPage1,从而产生这个小部件树:

MaterialApp
|__MyRootPage()
   |__MyPage1()
      |__MyPage2()

但相反,我得到了这个:

MaterialApp
|__MyPage2()
|__MyRootPage()
   |__MyPage1()

我错过了什么?

提前致谢!

4

0 回答 0