Flutter CupertinoFullscreenDialogTransition Widget使用详解
CupertinoFullscreenDialogTransition Widget是一个Cupertino风格的全屏对话框过渡动画。通常在使用CupertinoPageRoute路由时,通过设置fullscreenDialog参数为true来使用该过渡动画。
CupertinoFullscreenDialogTransition Widget具有以下属性:
- primaryRouteAnimation: 一个Animation
对象,表示当前(主)路由的动画。 - secondaryRouteAnimation: 一个Animation
对象,表示要进入的(次要)路由的动画。 - child: 一个Widget类型的值,表示要执行动画的Widget。
下面是一个使用CupertinoFullscreenDialogTransition Widget的例子:
class CupertinoDialogDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Cupertino Dialog Demo'),
),
body: Center(
child: CupertinoButton(
child: Text('Show Dialog'),
onPressed: () {
Navigator.of(context).push(
CupertinoPageRoute(
fullscreenDialog: true,
builder: (BuildContext context) => CupertinoDialog(
title: Text('Delete Item?'),
content: Text('Are you sure you want to delete this item?'),
actions: [
CupertinoDialogAction(
child: Text('Cancel'),
onPressed: () => Navigator.of(context).pop(),
),
CupertinoDialogAction(
child: Text('Delete'),
isDestructiveAction: true,
onPressed: () {
// Perform delete operation
Navigator.of(context).pop();
},
),
],
),
),
);
},
),
),
);
}
}
在上面的例子中,我们使用了CupertinoPageRoute路由,并将fullscreenDialog参数设置为true。这意味着我们将使用CupertinoFullscreenDialogTransition Widget来过渡到CupertinoDialog Widget。
CupertinoFullscreenDialogTransition Widget通常用于在Cupertino应用程序中为用户提供一个无缝的全屏过渡动画体验。注意,它通常在使用CupertinoPageRoute路由时使用,而不是在自定义路由时使用。