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

时间:2018-12-07 13:36:51

标签: dart flutter

我想在CustomPageRoute中使用我的Navigator.pushNamed(),但是我找不到使用它的方法。

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

Navigator.push(context, CustomPageRoute(builder: (context) => MyPage()));

这是我的路线:

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

1 个答案:

答案 0 :(得分:0)

最近我遇到了一个同样的问题,该问题用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}');
  }

并将其设置为onGenerateRoute中的MaterialApp

onGenerateRoute: _onGenerateRoute,

看起来您可能已经根据先前的评论解决了这个问题,但是我想让像我这样的未来人更容易发现这篇文章!

注意:请确保未同时定义路由名称(在这种情况下为/onboarding),并在routes上将其设置为MaterialApp,因为它只会如果您的onGenerateRoute无法通过您的常规路线解决,则触发它。