按下另一个小部件后,将“动画小部件返回到其之前的状态”
创始人
2024-11-08 22:00:15
0

以下是一个示例,演示如何在按下一个小部件后将动画小部件返回到其之前的状态:

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Animation Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State
    with SingleTickerProviderStateMixin {
  AnimationController _controller;
  Animation _animation;

  @override
  void initState() {
    super.initState();

    // 初始化动画控制器
    _controller = AnimationController(
      vsync: this,
      duration: Duration(milliseconds: 500),
    );

    // 定义动画曲线(可选)
    final curve = CurvedAnimation(
      parent: _controller,
      curve: Curves.easeInOut,
    );

    // 定义动画范围和起始位置
    _animation = Tween(
      begin: Offset.zero,
      end: Offset(0.5, 0),
    ).animate(curve);
  }

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

  void _handleButtonPress() {
    if (_controller.isCompleted) {
      _controller.reverse(); // 当动画已完成时,反转动画
    } else {
      _controller.forward(); // 当动画未完成时,开始动画
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Animation Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            SlideTransition(
              position: _animation, // 使用动画
              child: Container(
                width: 200,
                height: 200,
                color: Colors.blue,
              ),
            ),
            SizedBox(height: 20),
            RaisedButton(
              onPressed: _handleButtonPress, // 按下按钮时触发动画
              child: Text('按下切换动画'),
            ),
          ],
        ),
      ),
    );
  }
}

相关内容

热门资讯

解迷透视!德州透视插件,wej... 解迷透视!德州透视插件,wejoker私人辅助软件,模板教程(有挂细节)-哔哩哔哩1、wejoker...
详情透视!智星德州插件2024... 详情透视!智星德州插件2024最新版!果然真的是有辅助插件(讲解有挂)-哔哩哔哩1、智星德州插件20...
关于透视!wepoker透视脚... 关于透视!wepoker透视脚本免费使用视频,聚星ai辅助工具激活码,法门教程(有挂总结)-哔哩哔哩...
科普透视!pokemmo手机版... 科普透视!pokemmo手机版脚本免费!一直真的有辅助方法(有挂攻略)-哔哩哔哩;进入游戏-大厅左侧...
解密透视!hhpoker是真的... 解密透视!hhpoker是真的吗,aapoker怎么拿好牌,学习教程(有挂解惑)-哔哩哔哩1、让任何...
必备透视!哈糖大菠萝有没有挂!... 必备透视!哈糖大菠萝有没有挂!确实是有辅助教程(有挂细节)-哔哩哔哩1、每一步都需要思考,不同水平的...
总结透视!悦扑克脚本,wepo... 总结透视!悦扑克脚本,wepokerplus透视脚本免费,步骤教程(了解有挂)-哔哩哔哩1、wepo...
详细透视!pokemmo脚本!... 详细透视!pokemmo脚本!竟然一直总是有辅助app(有挂工具)-哔哩哔哩1)pokemmo脚本免...
解迷透视!wepoker透视脚... 解迷透视!wepoker透视脚本下载,wpk系统是否存在作必弊行为,资料教程(有挂助手)-哔哩哔哩w...
普及透视!佛手在线是不是有挂!... 普及透视!佛手在线是不是有挂!都是存在有辅助技巧(有挂讲解)-哔哩哔哩暗藏猫腻,小编详细说明佛手在线...