Flutter 如何使用gestureDetector onPanUpdate连续播放动画并删除所有动画

Flutter 如何使用gestureDetector onPanUpdate连续播放动画并删除所有动画,flutter,dart,flutter-layout,flutter-animation,flutter-test,Flutter,Dart,Flutter Layout,Flutter Animation,Flutter Test,这是statefulWidget,其中包含了gesturedector和onPanUpdate回调。这意味着如果指针与屏幕接触,我们可以做正确的事情。在这里,如果用户在屏幕上拖动,我将添加一个generateBox。在generateBox()方法中,我包含了一个简单的动画,它根据pi的值旋转,并在500毫秒后调用动画完成回调,从数组列表的第一个元素的索引0(零)中删除数组列表 这是我想用颤振解决的问题 我尝试了同样的方法,但没有达到预期效果 当我们开始拖动onPanUpdate时,callba

这是statefulWidget,其中包含了
gesturedector
onPanUpdate
回调。这意味着如果指针与屏幕接触,我们可以做正确的事情。在这里,如果用户在屏幕上拖动,我将添加一个generateBox。在generateBox()方法中,我包含了一个简单的动画,它根据pi的值旋转,并在500毫秒后调用动画完成回调,从数组列表的第一个元素的索引0(零)中删除数组列表

这是我想用颤振解决的问题

我尝试了同样的方法,但没有达到预期效果

当我们开始拖动onPanUpdate时,callback会生成所有容器并制作动画,但它不会像我提到的那样连续删除屏幕上的所有容器,以便在TweenAnimationBuilder的onEnd回调中动画结束时删除它们。正如我想在上面的动画gif

我知道一个好的颤振手和GDE在飞镖和颤振可以很好地解决这个问题

导入“包装:颤振/材料.省道”;
导入“dart:math”;
void main(){
runApp(
材料聚丙烯(
主页:MyApp(),
),
);
}
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
var myWidgetList=[];
var xPosition=0.0;
var yPosition=0.0;
@凌驾
小部件构建(构建上下文){
返回手势检测器(
onPanUpdate:(DragUpdate详细信息){
设置状态(){
xPosition=details.localPosition.dx;
yPosition=details.localPosition.dy;
添加(generateBox());
});
},
孩子:脚手架(
主体:堆栈(
子项:myWidgetList.toList(),
),
),
);
}
//生成500毫秒的动画框。
Widget generateBox(){
返回定位(
左:xPosition,
顶部:yPosition,
孩子:TweeAnimationBuilder(
tween:tween(开始:0,结束:pi),
持续时间:常量持续时间(毫秒:500),
建筑商:(uu,双角度,uu){
返回Transform.rotate(
角度:角度,,
子:容器(
宽度:80,
身高:80,
装饰:盒子装饰(
边界:边界(
宽度:3,
颜色:颜色。灰色[800],
),
borderRadius:const borderRadius.all(
圆形半径(20),
),
),
),
);
},
ONED:(){
myWidgetList.remove(myWidgetList[0]);
},
),
);
}
}