在开发Flutter过程中,如果需要开发炫酷的动画效果,需要用到动画组件。接下来我们介绍一下AnimatedOpacity组件。
一、AnimatedOpacity简介
AnimatedOpacity组件是一个可以控制widget透明度的组件,我们可以用这个组件实现widget动画的显示和隐藏,并且调整组件的透明度。我们通过继承树可以看出,该组件继承自ImplicitlyAnimatedWidget,是一个StatefulWidget。
隐式动画的基类为ImplicitlyAnmatedWidget,它是一个抽象方法,有12种动画组件都是继承自它,它的构造方法也是比较简单,只有四个参数,下面先来看下各个参数的作用。
![](https://img.haomeiwen.com/i6556066/27e5ac7f9146ca80.png)
curve参数表示的是动画执行的过程方式,默认为线性方式;
duration参数表示的是动画执行的时长,此参数为必传参数;
onEnd参数表示的是动画结束的回调。
二、隐式动画【官方解释】
通过使用 Flutter 的 动画库,你可以为 UI 中的组件添加运动和创建视觉效果。你可以使用库中的一套组件来管理动画,这些组件统称为隐式动画或隐式动画组件,其名称源于它们都实现了 ImplicitlyAnimatedWidget 类。使用隐式动画,你可以通过设置一个目标值,驱动 widget 的属性进行动画变换;每当目标值发生变化时,属性会从旧值逐渐更新到新值。通过这种方式,隐式动画内部实现了动画控制,从而能够方便地使用— 隐式动画组件会管理动画效果,用户不需要再进行额外的处理。
隐式动画最大的特点为不需要传入动画器,我们可以从构造方法处得知,用户操作AnimatedOpacity组件的时候,不需要去操作动画器。直接使用类似一个Container就行。
三、使用方式
直接像使用Container那样添加到就行了
Container(child:AnimatedOpacity(
opacity: opacity, // 使用动画值设置透明度
duration: const Duration(seconds: 1),
child: YZRightCardSecondwidget()))),
通过改变opacity的值,直接 state.setState();可以改变此控件的透明度。
网友评论