flutter RotationTransition实现旋转动画
更多文章请查看 flutter从入门 到精通
flutter 动画状态监听器
AnimationController
//动画控制器AnimationController controller;//AnimationController是一个特殊的Animation对象,在屏幕刷新的每一帧,就会生成一个新的值,// 默认情况下,AnimationController在给定的时间段内会线性的生成从0.0到1.0的数字//用来控制动画的开始与结束以及设置动画的监听//vsync参数,存在vsync时会防止屏幕外动画(动画的UI不在当前屏幕时)消耗不必要的资源//duration 动画的时长,这里设置的 seconds: 2 为2秒,当然也可以设置毫秒 milliseconds:2000.controller =AnimationController(duration: const Duration(seconds: 2), vsync: this);//动画开始、结束、向前移动或向后移动时会调用StatusListenercontroller.addStatusListener((status) {if (status == AnimationStatus.completed) {//动画从 controller.reverse() 反向执行 结束时会回调此方法print("status is completed");// controller.reset(); 将动画重置到开始前的状态//开始执行//controller.forward();} else if (status == AnimationStatus.dismissed) {//动画从 controller.forward() 正向执行 结束时会回调此方法print("status is dismissed");//controller.forward();}else if (status == AnimationStatus.forward) {print("status is forward");//执行 controller.forward() 会回调此状态}else if (status == AnimationStatus.reverse) {//执行 controller.reverse() 会回调此状态print("status is reverse");}});
AnimationController 的常用操作说明
值 | 说明 |
---|---|
controller.forward() | 正向开始执行动画 |
controller.reverse() | 反向开始执行动画 |
controller.reset() | 重置动画到初始状态 |
controller.dispose() | 取消/停止动画 |
flutter AnimationStatus 动画状态说明
值 | 说明 |
---|---|
AnimationStatus.forward | 执行 controller.forward() 会回调此状态 |
AnimationStatus.reverse | 执行 controller.reverse() 会回调此状态 |
AnimationStatus.dismissed | 动画从 controller.reverse() 反向执行 结束时会回调此方法 |
AnimationStatus.completed) | 动画从 controller.forward() 正向执行 结束时会回调此方法 |
1 flutter RotationTransition实现旋转动画
//动画控制器AnimationController controller;//AnimationController是一个特殊的Animation对象,在屏幕刷新的每一帧,就会生成一个新的值,// 默认情况下,AnimationController在给定的时间段内会线性的生成从0.0到1.0的数字//用来控制动画的开始与结束以及设置动画的监听//vsync参数,存在vsync时会防止屏幕外动画(动画的UI不在当前屏幕时)消耗不必要的资源//duration 动画的时长,这里设置的 seconds: 2 为2秒,当然也可以设置毫秒 milliseconds:2000.controller =AnimationController(duration: const Duration(seconds: 2), vsync: this);//动画开始、结束、向前移动或向后移动时会调用StatusListenercontroller.addStatusListener((status) {if (status == AnimationStatus.completed) {//动画从 controller.forward() 正向执行 结束时会回调此方法print("status is completed");} else if (status == AnimationStatus.dismissed) {//动画从 controller.reverse() 反向执行 结束时会回调此方法print("status is dismissed");} else if (status == AnimationStatus.forward) {print("status is forward");//执行 controller.forward() 会回调此状态} else if (status == AnimationStatus.reverse) {//执行 controller.reverse() 会回调此状态print("status is reverse");}});
执行动画的 widget
//旋转Widget buildRotationTransition() {return Center(child: RotationTransition(//设置动画的旋转中心alignment: Alignment.center,//动画控制器turns: controller,//将要执行动画的子viewchild: Container(width: 100,height: 100,color: Colors.grey,),),);}
}
2 flutter RotationTransition实现无限循环旋转动画
实现方法 就是在动画结束的时候再开启动画
//动画开始、结束、向前移动或向后移动时会调用StatusListenercontroller.addStatusListener((status) {if (status == AnimationStatus.completed) {//动画从 controller.forward() 正向执行 结束时会回调此方法print("status is completed");//重置起点controller.reset();//开启controller.forward();} else if (status == AnimationStatus.dismissed) {//动画从 controller.reverse() 反向执行 结束时会回调此方法print("status is dismissed");} else if (status == AnimationStatus.forward) {print("status is forward");//执行 controller.forward() 会回调此状态} else if (status == AnimationStatus.reverse) {//执行 controller.reverse() 会回调此状态print("status is reverse");}});
flutter RotationTransition实现旋转动画相关推荐
- flutter 点击旋转动画_让动画实现更简单,Flutter 动画简易教程!
Flutter中的动画功能强大且易于使用.接下来通过一个具体的实例,您将学到关于 Flutter 动画的一切. 难度:中级 今天,我们无法想象移动应用程序里面没有任何动画,当您从一页跳转到另一页时,或 ...
- flutter常用内置动画组件
文章目录 AnimatedContainer AnimatedCrossFade Hero AnimatedBuilder DecoratedBoxTransition FadeTransition ...
- 在 Flutter 中实现文字动画
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tds9vto6-1626653755909)(https://ducafecat.tech/2021/07/19/tra ...
- Flutter 8 个优秀动画 Packages
Flutter 8 个优秀动画 Packages 前言 动画对于使移动应用程序的用户界面感觉自然流畅至关重要.加上交互式元素和平滑的过渡,它们使应用程序简单易用. 正文 Flutter Animate ...
- cell 滑动实现旋转动画效果
效果图(真机效果好一点.毕竟 gif) tableView角度旋转动画.gif -(void)tableView:(UITableView *)tableView willDisplayCell:(U ...
- 如何用纯 CSS 创作一个方块旋转动画
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gjgyWm 可交互视频 ...
- 不炫技,SVG+CSS3 旋转动画属性就能实现的梦幻效果
CSS3的动画相关的基础的属性基本都涉猎过了,个人认为,其中最复杂的是d:path()路径变形动画,超过3D,而位移.轨迹.旋转.缩放.斜切什么的,相对简单一些,但作为非动画设计师而言,灵活的掌握这些 ...
- 代码创建 WPF 旋转动画
原文:代码创建 WPF 旋转动画 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/a771948524/article/details/9304001 ...
- CSS3 skew倾斜、rotate旋转动画
css3出现之前,我们实现一个对象的一组连续动画需要通过JavaScript或Jquery编写,脚本代码较为复杂: 若需要实现倾斜.旋转之类的动画难度将更高(我还没试过用JavaScript或Jque ...
最新文章
- flex与java实现增删改查
- linux 静态编译 yara
- STM32 之十五 奇怪问题处理及驱动库 BUG 汇总(持续更新中)
- python语言是由谁设计并领导开发的_python语言概述 - osc_lt3ocv4d的个人空间 - OSCHINA - 中文开源技术交流社区...
- flutter将毫秒转为日期
- mysql性能优化学习笔记
- configure 查看默认安装路径
- matlab中realmax
- HyperLedger Composer 如何安装、小白入门教程
- 解决办法:configure: error: You requested SRTP (requires libsrtp) but not found...die
- Excel技巧[EXCEL 下拉填充公式,保持公式部分内容不变,使用绝对引用]
- 坚果pro2官方rom_坚果 pro2线刷包_坚果 pro2刷机包_坚果 pro2固件包_坚果 pro2救砖包 - 线刷宝ROM中心...
- 苹果(APPLE)开发者账号说明及注册流程(99美元公司版/个人版及299美元企业版)
- python不合法的布尔表达式,python笔试题22-41
- Kotlin只是一个“网红,【面试必备】
- ImageConverter引起的 invalid address or address of corrupt block 0xb7feab58 passed to dlfree
- Mac 清除dns缓存
- iis服务器里网站无法访问,IIS服务器网站无法访问解决方法(图文).doc
- Android studio的下载和安装
- 良心分享 50 款程序员“神器级”的网站,你一定用得上,老少皆宜
热门文章
- 【python教程入门学习】Python 逻辑零基础入门
- ibatis insert mysql_让iBatis中的insert返回主键
- 数据结构期末复习之插入排序
- ubuntu14.04下 安装matlabR2015b遇到的一些问题及其解决方法
- Pure Pursuit trajectory tracking and Stanley trajectory tracking总结与比较
- 复练-面试的科技树-企业人才需求和招聘流程
- linux 缩小链接库体积,两个奇技淫巧,将 Docker 镜像体积减小 99%
- java checkproperties(this)_【转载】java读取.properties配置文件的几种方法
- VSCODE 10个高效开发插件
- docker简介以及优缺点