Flutter Navigator.pushNamed() 自定义路线动画

6 dart flutter

我想使用 my CustomPageRouteinNavigator.pushNamed()但我找不到使用它的方法。

但是,我可以通过以下方式使用它

Navigator.push(context, CustomPageRoute(builder: (context) => MyPage()));
Run Code Online (Sandbox Code Playgroud)

这是我的路线:

"/page": (context) => MyPage(), // Can I use CustomPageRoute here, if yes then how?
Run Code Online (Sandbox Code Playgroud)

小智 9

最近我遇到了同样的问题,用onGeneratePageRoute

即创建一个动态生成路线的方法:

  static Route<dynamic> _onGenerateRoute(RouteSettings settings) {
    switch (settings.name) {
      case '/onboarding':
        return MyCustomPageRoute(builder: (context) => OnboardingScreen(), settings: settings);
    }
    throw UnsupportedError('Unknown route: ${settings.name}');
  }
Run Code Online (Sandbox Code Playgroud)

并将其设置为onGenerateRoute您的MaterialApp

onGenerateRoute: _onGenerateRoute,
Run Code Online (Sandbox Code Playgroud)

看起来你可能已经根据之前的评论弄清楚了这一点,但我想我会让像我这样偶然发现这篇文章的未来人更容易!

注意:确保路由名称(在本例中/onboarding)也没有定义并设置为routes您的,因为它只会在无法从正常路由解析时MaterialApp触发您。onGenerateRoute