美文网首页
Flutter-内置的动画组件

Flutter-内置的动画组件

作者: 阿博聊编程 | 来源:发表于2022-06-06 09:31 被阅读0次
配图来自网络,如侵必删

Flutter的动画开发当中,Flutter SDK也有提供一些内置的动画组件给我们使用。这篇博客就来分享一下有哪些内置的动画组件,希望对小伙伴们有所帮助。

内置的动画组件

动画组件名称 组件的作用
AlignTransition 与Align组件对应的动画组件,可以控制子组件对齐方式的切换。
SlideTransition 可以控制组件偏移位置的动画组件。
ScaleTransition 可以控制组件比例的动画组件。
RotationTransition 可以控制旋转角度的动画组件。
SizeTransition 可以控制大小的动画组件。
FadeTransition 可以控制透明度的动画组件。
RelativePositionedTransition 与Positioned组件对应的动画组件,可以用于组件位置的切换。

简单的使用案例

AlignTransition为例子,因为我不会搞gif图片,我直接上全部代码,可以复制到编译器上面使用:

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Transition Demo'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage>
    with SingleTickerProviderStateMixin {
  late Animation<Alignment> alignmentAnimation;

  late AnimationController _controller;

  @override
  void initState() {
    super.initState();
    // 初始化动画控制器
    _controller =
        AnimationController(vsync: this, duration: const Duration(seconds: 1));
    // 创建插值为Alignment类型的动画对象
    AlignmentTween alignmentTween =
        AlignmentTween(begin: Alignment.topLeft, end: Alignment.bottomRight);
    alignmentAnimation = alignmentTween.animate(_controller);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Container(
        height: 200,
        color: Colors.redAccent,
        child: AlignTransition(
          alignment: alignmentAnimation,
          child: Container(
            width: 200,
            height: 100,
            color: Colors.yellowAccent,
          ),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          // 点击事件,设置动画开始
          _controller.forward();
        },
        child: const Icon(Icons.start),
      ),
    );
  }

  buildItem(String content, Color backgroundColor) {
    return Container(
      width: 100,
      height: 100,
      alignment: Alignment.center,
      color: backgroundColor,
      child: Text(content),
    );
  }
}

动画效果是从左上角到右下角。

相关文章

  • Flutter-内置的动画组件

    在Flutter的动画开发当中,Flutter SDK也有提供一些内置的动画组件给我们使用。这篇博客就来分享一下有...

  • Flutter-隐式动画组件

    小伙伴有没有想过不用手动实现插值器、曲线等对象,或者不用AnimationController来实现动画的启动呢?...

  • Vue Transition内置组件动画

    一. 淡入淡出 实际截图: 二. animation实现动画

  • Flutter动画 5 - Flutter内置动画组件

    概述 前几篇文章我们都是使用Flutter中的AnimationController、Animation以及Twe...

  • vue学习过程

    基础部分 实例组件指令选项模板渲染事件绑定计算属性内置动画组件交互路由数据渲染/数据同步组件化、模块化 官方工具:...

  • Vue动画实现

    单个元素使用内置组件transition(添加和删除的时候) 原理: 嗅探是否用了CSS过度或动画,若有,那就在恰...

  • 子组件向父组件传值的几种方式

    Vue内置API 子组件 父组件 Uni-app 内置API 子组件 父组件 要在onLoad() 中写 this...

  • flutter-动画

    动画与打包 [TOC] 动画 AnimationController Ticker 动画状态监听:在forword...

  • flutter-动画

    flutter动画 1.动画原理:在一段时间内快速的多次改变UI外观,由于人眼会产生视觉暂留所以最终看到的就是一个...

  • Flutter了解之入门篇13-1(动画)

    内置动画组件 示例(AnimatedOpacity图片渐显过渡,一张图逐渐消失另一张图逐渐显示) 示例(Anima...

网友评论

      本文标题:Flutter-内置的动画组件

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