在 Android API 上,我们可以使用
overridePendingTransition(int enterAnim, int exitAnim)
Run Code Online (Sandbox Code Playgroud)
定义进入和退出转换。
如何在 Flutter 中做到这一点?
我已经实现了这段代码
class SlideLeftRoute extends PageRouteBuilder {
final Widget enterWidget;
SlideLeftRoute({this.enterWidget})
: super(
pageBuilder: (BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation) {
return enterWidget;
},
transitionsBuilder: (BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation, Widget child) {
return SlideTransition(
position: new Tween<Offset>(
begin: const Offset(1.0, 0.0),
end: Offset.zero,
).animate(animation),
child: child
);
},
);
}
Run Code Online (Sandbox Code Playgroud)
但它只定义了输入转换。我如何定义退出转换?
更新
想象一下,当我执行时,我有两个屏幕(Screen1 和 Screen2)
Navigator.push(
context, SlideLeftRoute(enterWidget: Screen2()));
Run Code Online (Sandbox Code Playgroud)
我想将动画应用到 Screen1 和 Screen2 而不仅仅是 Screen2