Animated
Animated
库旨在使动画变得流畅,强大并易于构建和维护。Animated
侧重于输入和输出之间的声明性关系,以及两者之间的可配置变换,此外还提供了简单的 start/stop
方法来控制基于时间的动画执行 。
创建动画最基本的工作流程是先创建一个 Animated.Value
,将它连接到动画组件的一个或多个样式属性,然后使用Animated.timing()
通过动画效果展示数据的变化:
请不要直接修改动画值!你可以用
useRef
Hook来返回一个可修改的 ref 引用。ref 对象的current
属性在初始化时被赋予给定的动画值,且在组件的生命周期内保存不被销毁。
示例
下面的例子演示了一个根据动画值fadeAnim
来淡入淡出的视图:
你可以在动画文档中看到更多实际的例子。
概览
Animated
提供了两种类型的值:
Animated.Value()
用于单个值Animated.ValueXY()
用于矢量值
Animated.Value
可以绑定到样式或是其他属性上,也可以进行插值运算。单个Animated.Value
可以用在任意多个属性上。
配置动画
Animated
提供了三种动画类型。每种动画类型都提供了特定的函数曲线,用于控制动画值从初始值变化到最终值的变化过程:
Animated.decay()
以指定的初始速度开始变化,然后变化速度越来越慢直至停下。Animated.spring()
提供了一个基础的弹簧物理模型.Animated.timing()
使用easing 函数让数值随时间动起来。
大多数情况下你应该使用timing()
。默认情况下,它使用对称的 easeInOut 曲线,将对象逐渐加速到全速,然后通过逐渐减速停止结束。