Bootstrap

Flutter:RotationTransition旋转动画

配置vsync,需要实现一下with SingleTickerProviderStateMixin
class _MyHomePageState extends State<MyHomePage>  with SingleTickerProviderStateMixin{
  // 定义 AnimationController 
  late AnimationController _controller;

  @override
  void initState() {
    super.initState();
    // 初始化 AnimationController 
    _controller = AnimationController(
      duration: const Duration(milliseconds: 500),
      vsync:this, // 让程序和手机的刷新频率统一
      lowerBound: 0, // 默认从0
      upperBound: 1, // 旋转到到1(360度),可修改当前值:0.5(180度)
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('标题'),
      ),
      body: Center(
        child: Column(
          children: [
            RotationTransition(
              turns: _controller,
              child: Container(
                alignment: Alignment.center,
                width: 100,
                height: 100,
                color: Colors.red,
              ),
            ),
            ElevatedButton(onPressed: (){
              _controller.repeat(); // repeat(reverse: true) 是否循环播放,正转360后倒转360,循环
            }, child: const Text('旋转重复')),
            ElevatedButton(onPressed: (){
              _controller.stop();
            }, child: const Text('旋转停止')),
            ElevatedButton(onPressed: (){
              _controller.forward();
            }, child: const Text('正转1次')),
            ElevatedButton(onPressed: (){
              _controller.reverse();
            }, child: const Text('倒转一次')),
            ElevatedButton(onPressed: (){
              _controller.reset();
            }, child: const Text('重置')),
          ],
        ),
      ),
    );
  }
}

在这里插入图片描述

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;