美文网首页
Flutter开发 - AnimatedOpacity组件

Flutter开发 - AnimatedOpacity组件

作者: 歐陽公子 | 来源:发表于2024-08-14 17:08 被阅读0次

在开发Flutter过程中,如果需要开发炫酷的动画效果,需要用到动画组件。接下来我们介绍一下AnimatedOpacity组件。

一、AnimatedOpacity简介

AnimatedOpacity组件是一个可以控制widget透明度的组件,我们可以用这个组件实现widget动画的显示和隐藏,并且调整组件的透明度。我们通过继承树可以看出,该组件继承自ImplicitlyAnimatedWidget,是一个StatefulWidget。

隐式动画的基类为ImplicitlyAnmatedWidget,它是一个抽象方法,有12种动画组件都是继承自它,它的构造方法也是比较简单,只有四个参数,下面先来看下各个参数的作用。

ImplicitlyAnmatedWidget构造方法

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();可以改变此控件的透明度。

相关文章

网友评论

      本文标题:Flutter开发 - AnimatedOpacity组件

      本文链接:https://www.haomeiwen.com/subject/kluskjtx.html