我们现在就可以像这样使用 SlideRightRoute ,代替了之前的 MaterialPageRoute。
Navigator.push(context, SlideRightRoute(page: Screen2()))
代码运行的效果是…
代码非常简单的对吧?你可以通过修改偏移量 offset 来改变滑动过渡的方向。
缩放过渡
缩放过渡会通过改变组件的大小来完成动画效果。你也可以通过修改 CurvedAnimation 的 curves 来改变动画。下面这个例子我使用的是 Curves.fastOutSlowIn。
import ‘package:flutter/material.dart’;
class ScaleRoute extends PageRouteBuilder {
final Widget page;
ScaleRoute({this.page})
: super(
pageBuilder: (
BuildContext context,
Animation animation,
Animation secondaryAnimation,
) =>
page,
transitionsBuilder: (
BuildContext context,
Animation animation,
Animation secondaryAnimation,
Widget child,
) =>
ScaleTransition(
scale: Tween(
begin: 0.0,
end: 1.0,
).animate(
CurvedAnimation(
parent: animation,
curve: Curves.fastOutSlowIn,
),
),
child: child,
),
);
}
代码运行的效果是…