我想让我的小部件动画移动到屏幕的随机部分,每当我点击一个按钮



基本上我有一个小部件和一个floatingActionButton,我想让这个小部件移动每当我按下按钮,我设法使它传送到一个随机位置,但我想让它动画

我想我的小部件动画从他的当前位置到一个新的位置时,按下按钮。

randomNumber()函数也是一个在最小值和最大值之间选择一个随机数的函数。randomNumber(最小,最大);

class _homePageState extends State<homePage> with SingleTickerProviderStateMixin{
late final AnimationController _animationController = AnimationController(
vsync: this,
duration: Duration(seconds: 1),
)..forward();

@override
void initState() {
super.initState();
}
double beginX = randomNumber(-1, 1);
double beginY = randomNumber(-1, 1);
double endX = randomNumber(-1, 1);
double endY = randomNumber(-1, 1);
@override
void dispose() {
_animationController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
late final Animation<Offset> _animation = Tween<Offset>(
begin: Offset(beginX, beginY),
end: Offset(endX, endY),
).animate(_animationController);
return Scaffold(
body: Center(
child: SlideTransition(
child: Container(
height: 100,
width: 100,
color: Colors.red,
),
position: _animation,
)
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
beginX = endX; // here i wanted the widget's old end position to become it's new begin position
beginY = endY;
endX = randomNumber(-1, 1);
endY = randomNumber(-1, 1);
_animationController..forward();
});
},
),
);
}
}

你可以设置你自己的动画,这样做,但它会简单得多,只使用StackAnimatedPositioned,然后你只需要更新一些随机位置值和重建小部件。

文档有所有的信息

相关内容

最新更新