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()
私は何が欠けていますか?
前もって感謝します!