<
Flutter学习笔记 动画
>
上一篇

虚拟机 vmware 使用 u盘启动盘 使用物理磁盘
下一篇

Room

flutter 动画类型

在 Flutter 中,有许多不同类型的动画可以使用。以下是一些常见的 Flutter 动画效果和库:

  1. Tween Animation: 这是最基本的动画类型,通过指定开始值和结束值之间的插值,实现属性的平滑过渡。你可以使用Tween类与AnimationControllerAnimatedBuilder配合使用来创建 Tween 动画。

  2. Hero Animation: Hero 动画用于在不同页面之间平滑地转换共享元素。它可以使元素从一个页面过渡到另一个页面,并自动处理元素位置、大小和外观的变化。

  3. AnimatedOpacity: 这个小部件可以在不透明度之间进行平滑过渡,从而创建淡入淡出的效果。你可以使用AnimatedOpacity小部件包裹需要具备透明度动画的子部件。

  4. AnimatedContainer: AnimatedContainer是一个小部件,可以在不同尺寸、颜色或形状之间实现平滑过渡。当你改变容器的某些属性时(如宽度、高度、边距等),它会自动执行动画过渡。

  5. CurvedAnimation: CurvedAnimation用于为其他动画对象提供非线性的动画曲线。通过指定不同的曲线类型(如线性、加速、减速、弹簧等),你可以调整动画的速度和变化。

  6. Flare Animation: Flare 是一个矢量动画工具,可以创建高度交互的动画效果。你可以将 Flare 文件导入 Flutter 项目,并使用FlareActor小部件来播放和控制 Flare 动画。

  7. Rive Animation(之前称为 Flare): Rive 是另一个矢量动画工具,用于创建复杂的矢量动画效果。你可以将 Rive 文件导入 Flutter 项目,并使用RiveAnimationControllerRiveAnimation小部件来播放和控制 Rive 动画。

这些只是一些常见的 Flutter 动画效果和库,你还可以深入学习 Flutter 动画的原理和更多的动画效果。Flutter 提供了强大而灵活的动画API,使你能够实现各种各样的动态和吸引人的用户界面。

flutter 动画

在 Flutter 中,你可以使用AnimationAnimationController来创建各种动画效果。以下是实现动画的基本步骤:

  1. 导入动画相关的库:
    import 'package:flutter/animation.dart';
    
  2. 创建一个AnimationController对象:
    AnimationController _controller = AnimationController(
      duration: Duration(seconds: 1), // 动画持续时间
      vsync: this, // 垂直同步,通常传入当前Widget的State
    );
    
  3. 定义并创建一个Tween对象: Tween定义了动画属性的开始值和结束值,你可以根据需要创建不同类型的Tween,例如Tween<double>Tween<Color>等。
    Tween<double> _animationTween = Tween<double>(
      begin: 0,
      end: 200,
    );
    
  4. Tween对象与AnimationController关联起来:
    Animation<double> _animation = _animationTween.animate(_controller);
    
  5. 在需要进行动画的Widget中使用AnimatedBuilder小部件来构建动画:
    AnimatedBuilder(
      animation: _animation,
      builder: (context, child) {
     return Container(
       width: _animation.value,
       height: _animation.value,
       color: Colors.blue,
     );
      },
    ),
    

    builder回调方法中,你可以根据动画的当前值来设置Widget的属性。

  6. 控制动画的开始和停止: 你可以使用_controller来控制动画的开始和停止,如下所示:
    _controller.forward(); // 开始动画
    _controller.reverse(); // 反向播放动画
    _controller.stop(); // 停止动画
    

可以根据需要使用更多的 Tween、AnimationController 和 AnimatedBuilder 来创建更复杂的动画效果

此外,Flutter还提供了许多其他功能强大的动画库,如Hero动画、AnimatedContainer等,它们可以帮助你实现各种各样的动画效果

Top
Foot