Flutter Navigator没有推入堆栈

时间:2019-05-06 09:31:44

标签: flutter flutter-navigation

我在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()

我想念什么?

谢谢!

0 个答案:

没有答案