美文网首页Flutter
flutter动画FadeTransition

flutter动画FadeTransition

作者: 一叠纸船 | 来源:发表于2020-08-14 08:53 被阅读0次

今天要说的是flutter fadeIn 和fadeOut的动画的实现,其实就是AnimatedOpacity组件的实现原理。

示例代码如下:

import 'package:flutter/material.dart';

class FadeTranstionScreen extends StatefulWidget {
  FadeTranstionScreen({Key key}) : super(key: key);

  @override
  _FadeTranstionScreenState createState() => _FadeTranstionScreenState();
}

class _FadeTranstionScreenState extends State<FadeTranstionScreen> with SingleTickerProviderStateMixin {
  AnimationController _controller;
  Animation _animation;

  @override
  void initState() { 
    super.initState();
    _controller = AnimationController(
      vsync: this,
      duration: Duration(seconds: 2)
    );

    _animation = Tween(
      begin: 0.0,
      end: 1.0
    ).animate(_controller);
  }

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    _controller.forward();
    return Scaffold(
      appBar: AppBar(title: Text("FadeTranstion")),
      body: Container(
        alignment: Alignment.center,
        child: FadeTransition(
          opacity: _animation,
          child: Container(
            width: 100,
            height: 100,
            color: Colors.blue,
          ),
        ),
      ),
    );
  }
}

效果动画如图所示:


fade-transition.gif

FadeTransition可设置的属性示例基本已经完全展示了(alwaysIncludeSemantics在这一篇有介绍)。

首先要注意的是class需要混合(Mixin)SingleTickerProviderStateMixin,因为AnimationController需要调用TickerProvider里的createTicker方法(感兴趣可以查看flutter源码)。

其次,Animation需要定义开始和结束对应的值。并且在build方法里手动开始动画

最后,在dispose的生命周期里,AnimationController对象要调用dispose方法,以免造成内存泄漏。

这个系列的文章是根据flutter 的 Widget of the week来做的,欢迎大家斧正。

相关文章

  • flutter动画FadeTransition

    今天要说的是flutter fadeIn 和fadeOut的动画的实现,其实就是AnimatedOpacity组件...

  • Flutter Hero/FadeTransition动画

    图片列表 --> 图片详情的 Hero动画 图片列表页 图片详情页

  • FadeTransition

    Flutter有一的动画引擎很强大, 可以为应用添加任何的效果个动画,但是有些时候,有些效果和动画并不需要那么炫酷...

  • Flutter 动画效果

    在动画方面 Flutter 提供了 Animation 类提供使用。 动画 Flutter 中创建动画,请创建名为...

  • Flutter动画animation

    参考 动画 flutter中动画抽象 划重点 Flutter 中的动画系统基于Animation对象,widget...

  • Flutter中的动画

    Flutter中的动画 Flutter中的动画 https://flutterchina.club/tutoria...

  • Flutter从入门到写出完整App Day12

    20.3.27 Flutter实现动画 Flutter有自己的渲染闭环 一. 动画API认识 1. Animati...

  • Flutter轮播图

    前端开发当中最有意思的就是实现动画特效,Flutter提供的各种动画组件可以方便实现各种动画效果。Flutter中...

  • 深入理解Flutter动画原理

    基于Flutter 1.5,从源码视角来深入剖析flutter动画原理,相关源码目录见文末附录 一、概述 动画效果...

  • Flutter动画: Animation动画基础(一)

    我的博客 要使用Flutter中动画, 首先要熟悉Flutter的动画基础概念和相关类。 Animation:Fl...

网友评论

    本文标题:flutter动画FadeTransition

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