gpt4 book ai didi

dart - 如何在 Flutter 中重建 AnimatedWidget

转载 作者:IT王子 更新时间:2023-10-29 06:54:36 25 4
gpt4 key购买 nike

我是 Flutter 新手。

我有一个 AnimatedWidget,它基本上将输入文本字段从屏幕的隐藏区域切换到可见部分,但是在某些情况下我需要重新加载 View 。

据我所知,AnimatedWidget 以某种方式扩展了 StatefulWidget,但是无法调用 setState。

谢谢

最佳答案

class MyState extends State<MyPage> with TickerProviderStateMixin {    
AnimationController controller;

@override
void initState() {
controller = AnimationController(duration: const Duration(milliseconds: 500), vsync: this);
loadDbData();
super.initState();
}

@override
Widget build(BuildContext context) {
final colorTween =
ColorTween(begin: Theme.of(context).primaryColor, end: Theme.of(context).primaryColorDark)
.animate(controller);
return AnimatedBuilder(
animation: colorTween,
builder: (buildContext, child) {
return Container(
color: colorTween.value,
);
});
}

对于启动动画,您可以使用:

controller.forward();
controller.forward(from: 0.5);
controller.reverse();

或者你可以这样设置监听器:

colorTween.addStatusListener((status) {
if (status == AnimationStatus.completed) {
controller.reverse();
} else if (status == AnimationStatus.dismissed) {
controller.forward();
}
});

希望这是你需要的

关于dart - 如何在 Flutter 中重建 AnimatedWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52921384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com