更多文章请查看 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实现旋转动画相关推荐

  1. flutter 点击旋转动画_让动画实现更简单,Flutter 动画简易教程!

    Flutter中的动画功能强大且易于使用.接下来通过一个具体的实例,您将学到关于 Flutter 动画的一切. 难度:中级 今天,我们无法想象移动应用程序里面没有任何动画,当您从一页跳转到另一页时,或 ...

  2. flutter常用内置动画组件

    文章目录 AnimatedContainer AnimatedCrossFade Hero AnimatedBuilder DecoratedBoxTransition FadeTransition ...

  3. 在 Flutter 中实现文字动画

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tds9vto6-1626653755909)(https://ducafecat.tech/2021/07/19/tra ...

  4. Flutter 8 个优秀动画 Packages

    Flutter 8 个优秀动画 Packages 前言 动画对于使移动应用程序的用户界面感觉自然流畅至关重要.加上交互式元素和平滑的过渡,它们使应用程序简单易用. 正文 Flutter Animate ...

  5. cell 滑动实现旋转动画效果

    效果图(真机效果好一点.毕竟 gif) tableView角度旋转动画.gif -(void)tableView:(UITableView *)tableView willDisplayCell:(U ...

  6. 如何用纯 CSS 创作一个方块旋转动画

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gjgyWm 可交互视频 ...

  7. 不炫技,SVG+CSS3 旋转动画属性就能实现的梦幻效果

    CSS3的动画相关的基础的属性基本都涉猎过了,个人认为,其中最复杂的是d:path()路径变形动画,超过3D,而位移.轨迹.旋转.缩放.斜切什么的,相对简单一些,但作为非动画设计师而言,灵活的掌握这些 ...

  8. 代码创建 WPF 旋转动画

    原文:代码创建 WPF 旋转动画 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/a771948524/article/details/9304001 ...

  9. CSS3 skew倾斜、rotate旋转动画

    css3出现之前,我们实现一个对象的一组连续动画需要通过JavaScript或Jquery编写,脚本代码较为复杂: 若需要实现倾斜.旋转之类的动画难度将更高(我还没试过用JavaScript或Jque ...

最新文章

  1. flex与java实现增删改查
  2. linux 静态编译 yara
  3. STM32 之十五 奇怪问题处理及驱动库 BUG 汇总(持续更新中)
  4. python语言是由谁设计并领导开发的_python语言概述 - osc_lt3ocv4d的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. flutter将毫秒转为日期
  6. mysql性能优化学习笔记
  7. configure 查看默认安装路径
  8. matlab中realmax
  9. HyperLedger Composer 如何安装、小白入门教程
  10. 解决办法:configure: error: You requested SRTP (requires libsrtp) but not found...die
  11. Excel技巧[EXCEL 下拉填充公式,保持公式部分内容不变,使用绝对引用]
  12. 坚果pro2官方rom_坚果 pro2线刷包_坚果 pro2刷机包_坚果 pro2固件包_坚果 pro2救砖包 - 线刷宝ROM中心...
  13. 苹果(APPLE)开发者账号说明及注册流程(99美元公司版/个人版及299美元企业版)
  14. python不合法的布尔表达式,python笔试题22-41
  15. Kotlin只是一个“网红,【面试必备】
  16. ImageConverter引起的 invalid address or address of corrupt block 0xb7feab58 passed to dlfree
  17. Mac 清除dns缓存
  18. iis服务器里网站无法访问,IIS服务器网站无法访问解决方法(图文).doc
  19. Android studio的下载和安装
  20. 良心分享 50 款程序员“神器级”的网站,你一定用得上,老少皆宜

热门文章

  1. 【python教程入门学习】Python 逻辑零基础入门
  2. ibatis insert mysql_让iBatis中的insert返回主键
  3. 数据结构期末复习之插入排序
  4. ubuntu14.04下 安装matlabR2015b遇到的一些问题及其解决方法
  5. Pure Pursuit trajectory tracking and Stanley trajectory tracking总结与比较
  6. 复练-面试的科技树-企业人才需求和招聘流程
  7. linux 缩小链接库体积,两个奇技淫巧,将 Docker 镜像体积减小 99%
  8. java checkproperties(this)_【转载】java读取.properties配置文件的几种方法
  9. VSCODE 10个高效开发插件
  10. docker简介以及优缺点