Flutter 如何在按下的颤振上使用幻灯片动画在树上添加小部件

Flutter 如何在按下的颤振上使用幻灯片动画在树上添加小部件,flutter,dart,Flutter,Dart,我需要添加小部件使用幻灯片动画到树上的一个动作在按下 父窗口小部件将是一个列表视图,其中子窗口将添加到幻灯片动画中import'package:flatter/material.dart'; import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext

我需要添加小部件使用幻灯片动画到树上的一个动作在按下 父窗口小部件将是一个列表视图,其中子窗口将添加到幻灯片动画中

import'package:flatter/material.dart';
import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Home(),
    );
  }
}

class Home extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => HomeState();
}

class HomeState extends State<Home> with SingleTickerProviderStateMixin {
  AnimationController controller;
  Animation<Offset> offset;

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

    controller =
        AnimationController(vsync: this, duration: Duration(seconds: 1));

    offset = Tween<Offset>(begin: Offset.zero, end: Offset(0.0, 1.0))
        .animate(controller);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: <Widget>[
          Center(
            child: RaisedButton(
              child: Text('Show / Hide'),
              onPressed: () {
                switch (controller.status) {
                  case AnimationStatus.completed:
                    controller.reverse();
                    break;
                  case AnimationStatus.dismissed:
                    controller.forward();
                    break;
                  default:
                }
              },
            ),
          ),
          Align(
            alignment: Alignment.bottomCenter,
            child: SlideTransition(
              position: offset,
              child: Padding(
                padding: EdgeInsets.all(50.0),
                child: CircularProgressIndicator(),
              ),
            ),
          )
        ],
      ),
    );
  }
}
void main(){ runApp(MyApp()); } 类MyApp扩展了无状态小部件{ @凌驾 小部件构建(构建上下文){ 返回材料PP( home:home(), ); } } 类Home扩展了StatefulWidget{ @凌驾 State createState()=>HomeState(); } 类HomeState使用SingleTickerProviderStateMixin扩展状态{ 动画控制器; 动画偏移; @凌驾 void initState(){ super.initState(); 控制器= AnimationController(vsync:this,duration:duration(秒数:1)); 偏移=二者之间(开始:偏移.0,结束:偏移(0.0,1.0)) .制作动画(控制器); } @凌驾 小部件构建(构建上下文){ 返回脚手架( 主体:堆栈( 儿童:[ 居中( 孩子:升起按钮( 子项:文本(“显示/隐藏”), 已按下:(){ 开关(控制器状态){ 案例AnimationStatus.completed: controller.reverse(); 打破 案例AnimationStatus.com已驳回: controller.forward(); 打破 违约: } }, ), ), 对齐( 对齐:对齐.bottomCenter, 子:幻灯片转换( 位置:偏移, 孩子:填充( 填充:所有边缘设置(50.0), 子对象:CircularProgressIndicator(), ), ), ) ], ), ); } }
如果没有澄清,我将编辑我的问题确定我将尝试编辑