Flutter动画 1 - 实现一个最简单的动画,看完阿里P9大牛的“Android成长笔记”我悟了
    		       		warning:
    		            这篇文章距离上次修改已过445天,其中的内容可能已经有所变动。
    		        
        		                
                在Flutter中,可以使用AnimatedWidget来创建一个最简单的动画。以下是一个示例代码,它演示了如何使用AnimatedWidget来制作一个简单的淡入淡出动画:
import 'package:flutter/material.dart';
 
void main() => runApp(MyApp());
 
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
    );
  }
}
 
class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}
 
class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
  AnimationController controller;
  Animation<double> animation;
 
  @override
  void initState() {
    super.initState();
    controller = AnimationController(
      duration: const Duration(seconds: 2),
      vsync: this,
    );
    animation = Tween<double>(begin: 0, end: 1).animate(controller)
      ..addListener(() => setState(() {}));
    controller.forward();
  }
 
  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }
 
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: FadeTransition(
          opacity: animation,
          child: Container(
            width: 200,
            height: 200,
            color: Colors.blue,
          ),
        ),
      ),
    );
  }
}这段代码创建了一个FadeTransition,它是AnimatedWidget的一个实例,用于实现淡入淡出效果。AnimationController控制动画的进度,通过Tween来设置动画的起始和结束值。在initState方法中,我们设置了动画的持续时间,并将其开始播放。在dispose方法中,我们确保了动画控制器被释放,避免内存泄漏。
评论已关闭