Flutter “颤振”;“迎头赶上”;拖动动画

Flutter “颤振”;“迎头赶上”;拖动动画,flutter,dart,Flutter,Dart,我目前正在开发一个颤振应用程序,用户可以在屏幕上拖动一个圆圈。我使用侦听器小部件获取当前指针位置,然后使用转换小部件对其进行相应的定位 class\u拖动示例扩展状态{ var offset=offset(0,0); @凌驾 小部件构建(构建上下文){ 返回脚手架( //这里有指针事件。 主体:听者( onPointerMove:(e){ 设置状态(){ //-50以使容器居中 偏移量=e.localPosition-偏移量(50,50); }); }, 行为:HitTestBehavior.

我目前正在开发一个颤振应用程序,用户可以在屏幕上拖动一个圆圈。我使用侦听器小部件获取当前指针位置,然后使用转换小部件对其进行相应的定位

class\u拖动示例扩展状态{
var offset=offset(0,0);
@凌驾
小部件构建(构建上下文){
返回脚手架(
//这里有指针事件。
主体:听者(
onPointerMove:(e){
设置状态(){
//-50以使容器居中
偏移量=e.localPosition-偏移量(50,50);
});
},
行为:HitTestBehavior.不透明,
子项:SizedBox.expand(
子:堆栈(
儿童:[
中心(子:Text('Hello,World!')),
//我在这里变换容器。
转换(
抵销:抵销,
子:容器(
宽度:100,
身高:100,
装饰:盒子装饰(
颜色:颜色,黑色,
边界半径:边界半径。圆形(50),
),
),
)
],
),
),
),
);
}
}
它工作得很好。但是它很平淡。如果当我移动指针/手指时,容器逐渐赶上手指,那会更好。我所寻找的效果可以从中看出。在这里,当您移动鼠标时,黑色圆圈逐渐赶上鼠标

我尝试过使用物理模拟和普通动画,但我不知道如何做。

您可以尝试使用隐式动画来设置其位置

动画可以根据您的需要配置
持续时间

AnimatedPositioned(
  left: offset.dx,
  top: offset.dy,
  curve: Curves.easeOutCirc,
  duration: Duration(milliseconds: 400),
  child: Container(
    // ...
  ),
),
AnimatedPositioned(
  left: offset.dx,
  top: offset.dy,
  curve: Curves.easeOutCirc,
  duration: Duration(milliseconds: 400),
  child: Container(
    // ...
  ),
),