flutter 单独设置pop动画
时间: 2023-07-04 14:27:14 浏览: 166
在 Flutter 中,可以通过使用 `PageRouteBuilder` 类来自定义页面路由的动画效果。要单独设置 pop 动画,可以使用 `PageRouteBuilder` 的 `reverseTransitionDuration` 和 `reverseTransitionBuilder` 属性。
下面是一个示例代码,展示如何在返回时设置不同的动画效果:
```dart
Navigator.push(
context,
MaterialPageRoute(builder: (context) => MyPage()),
).then((result) {
// 返回时执行的代码
});
Navigator.push(
context,
PageRouteBuilder(
pageBuilder: (BuildContext context, Animation<double> animation,
Animation<double> secondaryAnimation) {
return MyPage();
},
transitionDuration: Duration(milliseconds: 500),
reverseTransitionDuration: Duration(milliseconds: 800), // 设置返回时的动画时长
transitionsBuilder: (BuildContext context, Animation<double> animation,
Animation<double> secondaryAnimation, Widget child) {
return FadeTransition(
opacity: animation,
child: child,
);
},
),
).then((result) {
// 返回时执行的代码
});
```
在上面的代码中,我们使用 `PageRouteBuilder` 类来定义页面路由,设置了 `reverseTransitionDuration` 属性来指定返回时的动画时长,同时使用 `transitionsBuilder` 属性来实现页面切换时的动画效果。这里我们使用了 `FadeTransition` 类来实现一个简单的淡入淡出效果,你可以根据需要自定义不同的动画效果。
阅读全文