【发布时间】:2020-03-31 04:38:12
【问题描述】:
在我们的应用程序中,我们实现了自定义路由导航,我想为此设置转换,例如,这是我们的自定义路由,它可以正常工作,没有任何问题
Navigator(
key: navigatorKey,
initialRoute: Page.screenDashboard.route,
onGenerateRoute: (settings) {
final pageName = settings.name;
final page = _fragments.keys.firstWhere(
(element) => describeEnum(element) == pageName);
return MaterialPageRoute(
builder: (context) => FadeAndSlideRightTransition(page: _fragments[page]));
},
),
那我如何为MaterialPageRoute 设置过渡?
例如:
class SlideRightRoute extends PageRouteBuilder {
final Widget page;
SlideRightRoute({this.page})
: super(
pageBuilder: (
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
) =>
page,
transitionsBuilder: (
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child,
) =>
SlideTransition(
position: Tween<Offset>(
begin: const Offset(-1, 0),
end: Offset.zero,
).animate(animation),
child: child,
),
);
}
这个测试不起作用,我得到错误:
return MaterialPageRoute(builder: (context) => SlideRightRoute (page: _fragments[page]));
错误
error: The return type 'SlideRightRoute ' isn't a 'Widget', as required by the closure's context. (return_of_invalid_type_from_closure at [fluttersamples] lib\screens.dart:62)
【问题讨论】:
标签: flutter flutter-navigation