1

Flutter のナビゲーションで奇妙な問題が発生しています。

名前付きルートを使用しています。このため、私はメソッドを提供してNavigatoronGenerateRouteます:

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