我想使用 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