flutter 学习之动画三要素

动画:确定画面变化规律;根据这个规律,设定动画周期,启动动画;定期获取当前动画的值,不断地调整,重绘画面。

一、Animation

提供动画数据例如动画是否开始,停止,前进,或者后退,以及动画当前的值。不负责的话的渲染。

二、AnimationController

管理Animation,可以用来设置动画的时长,启动动画,暂停动画,反转动画等。

三、Listener

Animation回调函数,监听动画进度的变化,在回调函数中,根据当前值重新渲染组件,实现动画的渲染。

AnimationController 设置vsync属性

001 vsync防止出现不可见动画,

002 vsync对象会把动画绑定到一个widget,widget显视动画暂停,widget再次显示,动画恢复,这样可以避免动画组件 在组件不在当前屏幕时消耗资源。

在build方法中将当前动画状态的值读出来,才能最终实现动画效果。

简化动画数据和动画渲染

001 AnimatedWidget

接收Animation对象作为其初始化参数

002 AnimatedBuilder

自动监听Animation对象的变化,并根据需要将该控件标记为dirty以自动刷新UI,源码中AnimatedBuilder也是继承AnimatedWidget

003 hero动画

在两个页面的共享元素之间做出流畅页面切换效果。

 

例子

参考:

https://time.geekbang.org/column/article/119148

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值