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(),
),
),
)
],
),
);
}
}
如果没有澄清,我将编辑我的问题确定我将尝试编辑