我在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
路线上着陆我的应用程序,然后使用
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()
我想念什么?
谢谢!