我在 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()
我错过了什么?
提前致谢!