使用Flutter制作动画应用

善微科技 2019 10月27日 发布

Flutter为跨平台应用程序提供了出色的动画支持。本文探讨了一种新的非常规方法,它是一种向应用程序添加动画的简便方法。这些新的“动画和运动”小部件到底是什么?我们如何使用它们来添加简单和复杂的动画?


Flutter是一个跨平台框架,在过去两年中已经成熟,包括Web和桌面支持。它开发的应用程序流畅且美观,因此赢得了声誉。凭借其丰富的动画支持,声明性的UI编写方式,“热重载”以及其他功能,它现已成为一个完整的跨平台框架。


如果您是从Flutter开始的,并且想学习一种非常规的添加动画的方法,那么您来对地方了:我们将探索动画和运动小部件的领域,这是一种添加动画的隐式方法。


Flutter基于小部件的概念。应用程序的每个可视组件都是一个小部件-将其视为Android中的视图。Flutter使用Animation类,用于管理的“ AnimationController”对象和用于插值数据范围的“ Tween”来提供动画支持。这三个组件协同工作以提供流畅的动画。由于这需要手动创建和管理动画,因此被称为动画的一种显式方式。


现在,让我向您介绍动画和运动小部件。Flutter提供了许多固有支持动画的小部件。无需创建动画对象或任何控制器,因为所有动画均由此类小部件处理。只需为所需的动画选择适当的小部件,然后将其属性值传递给动画即可。该技术是一种隐式动画方法。


上面的图表大致列出了Flutter中的动画层次,以及如何同时支持显式和隐式动画。


本文介绍的一些动画小部件包括:


AnimatedOpacity

AnimatedCrossFade

AnimatedAlign

AnimatedPadding

AnimatedSize

AnimatedPositioned。

Flutter不仅提供了预定义的动画小部件,还提供了名为的通用小部件AnimatedWidget,可用于创建自定义的隐式动画小部件。从名称可以明显看出,这些小部件属于“动画”和“运动”小部件类别,因此它们具有一些共同的属性,这些属性使我们能够使动画更加平滑和美观。


现在让我解释这些通用属性,因为稍后将在所有示例中使用它们。


duration

设置参数动画的持续时间。

reverseDuration

反向动画的持续时间。

curve

设置参数动画时要应用的曲线。内插值可以从线性分布中获取,或者,如果指定的话,也可以从曲线中获取。

让我们通过创建一个简单的应用程序(称为“已报价”)开始旅程。每次应用启动时,它将显示随机报价。需要注意的两件事:首先,所有这些报价都将在应用程序中进行硬编码。其次,不会保存任何用户数据。


如没特殊注明,文章均为善微网络原创,转载请注明来自https://www.sanways.com/news/606.html