[英]Update child passed into stateful widget
嗨,我有一个名为BobButton()
的有状态小部件,它基本上执行 animation,按钮在按下时上下摆动。
BobButton 使用 Bobbing 效果为子小部件设置动画(它是有状态的)
我像这样把一个孩子传给 BobButton
BobButton( //Statefulwidget
child: Widget(
color: color,
controller: animationController,
)
)
其中一些小部件具有自己的动画或在父小部件 state 中具有更改的变量。 例如,我可能会调用:
setState({
color = Colors.pink
});
或者
animationController.forward()
但是,小部件不会更新,因为孩子已经被传递到有状态小部件 BobButton 中。
我应该怎么做才能解决这个问题
在Widget
中覆盖方法
@override
didUpdateWidget(Widget oldWidget) {
super.didUpdateWidget(oldWidget);
if (widget.color != oldWidget.color) {
setState(() {
// states variables if neccessary
});
}
}
AnimationController
是一个Listenable
,因此您可以添加一个侦听器。 或者尝试检查上面提到的didUpdateWidget
方法中的value
变化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.