Flutter:具有多个命名路由的flutter_page_transition不起作用

问题描述 投票:0回答:1

我需要在具有命名路线的屏幕之间切换。但是,当我使用多于1条路由时,它将使用默认过渡而不是flutter_page_transitions库中的过渡。

这不起作用:

      initialRoute: '/first',
      routes: {
        '/first': (context) => First(),
        '/second': (context) => Second(),
        '/third': (context) => Third(),
      },
      onGenerateRoute: (settings) {
        switch (settings.name) {
          case '/first': {
              return PageTransition(
                  child: First(), type: PageTransitionType.fade);
          }
          break;

          case '/second': {
              return PageTransition(
                  child: Second(), type: PageTransitionType.fade);
          }
          break;

          case '/third': {
              return PageTransition(
                  child: Third(), type: PageTransitionType.fade);
          }
          break;

          default: {
            return null;
          }
        }
      },


此作品

      onGenerateRoute: (settings) {
        switch (settings.name) {
          case '/first': {
              return PageTransition(
                  child: First(), type: PageTransitionType.fade);
          }
          break;

          default: {
            return null;
          }
        }
      },
flutter dart transition
1个回答
0
投票

谢谢大家!解决方案:我注释掉了路线

      initialRoute: '/first',
      /*routes: {
        '/first': (context) => First(),
        '/second': (context) => Second(),
        '/third': (context) => Third(),
      },*/
      onGenerateRoute: (settings) {
        switch (settings.name) {
          case '/first': {
              return PageTransition(
                  child: First(), type: PageTransitionType.fade);
          }
          break;

          case '/second': {
              return PageTransition(
                  child: Second(), type: PageTransitionType.fade);
          }
          break;

          case '/third': {
              return PageTransition(
                  child: Third(), type: PageTransitionType.fade);
          }
          break;

          default: {
            return null;
          }
        }
      },


© www.soinside.com 2019 - 2024. All rights reserved.