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

Dart flatter Navigator.pushNamed()自定义路线动画,dart,flutter,Dart,Flutter,我想在Navigator.pushNamed()中使用我的CustomPageRoute,但我找不到使用它的方法 然而,我可以用下面的方式使用它 Navigator.push(context, CustomPageRoute(builder: (context) => MyPage())); 这是我的路线: "/page": (context) => MyPage(), // Can I use CustomPageRoute here, if yes then how? 最近,

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

然而,我可以用下面的方式使用它

Navigator.push(context, CustomPageRoute(builder: (context) => MyPage()));
这是我的路线:

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

最近,我用
onGeneratePageRoute
hook“修复”了同样的问题

即,创建一种动态生成路由的方法:

  static Route<dynamic> _onGenerateRoute(RouteSettings settings) {
    switch (settings.name) {
      case '/onboarding':
        return MyCustomPageRoute(builder: (context) => OnboardingScreen(), settings: settings);
    }
    throw UnsupportedError('Unknown route: ${settings.name}');
  }
看起来你可能已经根据之前的评论找到了答案,但我想我会让像我这样的未来人更容易发现这篇文章


注意:确保路线名称(在本例中为
/onboarding
)未在
材料应用程序上定义并设置为
路线
,因为它只会在无法从正常路线解析时触发您的
onGenerateRoute

请参阅
onGenerateRoute
property@pskink谢谢我知道我可以使用
onGenerateRoute
实现它,但是当您没有静态路由并且希望传递一些信息时,通常会使用此属性。在我的例子中,我有静态路由,不需要传递任何信息。因此,如果你不想使用它,你必须接受默认路由Route@pskink这似乎是当前的解决方案,不管怎样,如果有人有新想法,我们就等着吧。@pskink这意味着唯一的方法是使用
onGenerateRoute
?如果是,请写下来作为答案,我很乐意接受。非常感谢。
onGenerateRoute: _onGenerateRoute,