Flutter 是否可以在颤振中更改showGeneralDialog()的默认动画?
我正在尝试自定义showGeneralDialog以显示我的Transform.scale动画。我只是想知道是否有办法将小部件的默认动画更改为曲线动画 如a1和a2,在:Flutter 是否可以在颤振中更改showGeneralDialog()的默认动画?,flutter,dart,flutter-animation,Flutter,Dart,Flutter Animation,我正在尝试自定义showGeneralDialog以显示我的Transform.scale动画。我只是想知道是否有办法将小部件的默认动画更改为曲线动画 如a1和a2,在: transitionBuilder: (context, a1, a2, widget) { 例如,我希望Transform.scale具有bounceIn效果 另外,有人能解释一下showGeneralDialog小部件的transitionBuilder:(context,a1,a2,widget){}和pa
transitionBuilder: (context, a1, a2, widget) {
例如,我希望Transform.scale
具有bounceIn
效果
另外,有人能解释一下showGeneralDialog小部件的transitionBuilder:(context,a1,a2,widget){}
和pageBuilder:(context,animation1,animation2){}
之间的区别吗?我如何正确使用它们
谢谢 是,可以通过覆盖transitionBuilder参数来实现 1.创建新的showDialog()方法 通常,开发人员使用showDialog放置一些覆盖底层的对话框 屏幕 在这个应用程序中,使用新方法很方便,因此可以简单地重复使用 通过我们的申请 新建对话框。省道
Future showNewDialog(
返回显示一般对话框(
...
转换持续时间:常量持续时间(毫秒:400),
转换生成器:_buildNewTransition,
);
}
我们只重用showGeneralDialog()方法,并自定义其与动画相关的
参数:持续时间的itstransitionDuration
和itstransitionBuilder
作为动画组件
2.定义新的动画组件
在这个演示中,我们通过将子部件
包装到
ScaleTransition
。然后我们定义了它的曲线,而不是仅在curve
param中定义,或者
在曲线
和反向曲线
中
新建对话框。省道
Widget\u buildNewTransition(
构建上下文上下文,
动画,,
动画二级动画,
孩子,
) {
返回刻度转换(
比例:曲线动画(
家长:动画,
曲线:Curves.bounceIn,
反向曲线:Curves.bounceIn,
),
孩子:孩子,
);
}
3.显示我们的新对话框
最后,我们可以在应用程序中的任何地方调用这个动画对话框
代码:
main.dart
RaisedButton.icon(
图标:图标(Icons.info\u轮廓),
标签:文本(“打开对话框”),
已按下:(){
showNewDialog(
上下文:上下文,
生成器:(BuildContext上下文){
返回警报对话框(
标题:文本(“反弹”),
);
},
);
},
),
存储库
你可以看看这里
演示
页面生成器与转换生成器
如果我们在中查看DialogRoute定义,我们可以得出以下结论:
每个showDialog()方法将按以下顺序运行和传递参数:
返回showGeneralDialog(
...,
transitionBuilder:null,
);
相反,如果我们通过调用showGeneralDialog将pageBuilder:null设置为空,则应用程序将不显示任何内容
返回showGeneralDialog(
...,
页面生成器:null,
转换生成器:_buildNewTransition,
);
我们可以得出结论:
- pageBuilder虽然有一些参数
和动画
,用于显示定义小部件SecondaryAnimation
- transitionBuilder用于定义动画 已处理,如显示对话框的颤振
Future showNewDialog(
返回显示一般对话框(
...
转换持续时间:常量持续时间(毫秒:400),
转换生成器:_buildNewTransition,
);
}
我们只重用showGeneralDialog()方法,并自定义其与动画相关的
参数:持续时间的itstransitionDuration
和itstransitionBuilder
作为动画组件
2.定义新的动画组件
在这个演示中,我们通过将子部件
包装到
ScaleTransition
。然后我们定义了它的曲线,而不是仅在curve
param中定义,或者
在曲线
和反向曲线
中
新建对话框。省道
Widget\u buildNewTransition(
构建上下文上下文,
动画,,
动画二级动画,
孩子,
) {
返回刻度转换(
比例:曲线动画(
家长:动画,
曲线:Curves.bounceIn,
反向曲线:Curves.bounceIn,
),
孩子:孩子,
);
}
3.显示我们的新对话框
最后,我们可以在应用程序中的任何地方调用这个动画对话框
代码:
main.dart
RaisedButton.icon(
图标:图标(Icons.info\u轮廓),
标签:文本(“打开对话框”),
已按下:(){
showNewDialog(
上下文:上下文,
生成器:(BuildContext上下文){
返回警报对话框(
标题:文本(“反弹”),
);
},
);
},
),
存储库
你可以看看这里
演示
页面生成器与转换生成器
如果我们在中查看DialogRoute定义,我们可以得出以下结论:
每个showDialog()方法将按以下顺序运行和传递参数: