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,