【发布时间】:2021-02-15 17:49:55
【问题描述】:
我正在尝试对容器进行发光效果。我正在使用 streambuilder 来构建列表项目,当项目价格发生变化时,我想显示容器发光效果。到目前为止,我已经这样做了,但小部件根本没有显示效果。 didUpdateWidget 不显示任何更新,并且当它显示时,所有列表视图项都会以无限时间为自己设置动画。有什么我遗漏的吗?
AnimationController _animationController;
@override
void initState() {
super.initState();
_animationController = new AnimationController(
vsync: this, duration: new Duration(milliseconds: 500));
}
@override
void didUpdateWidget(CustomContainer oldWidget) {
super.didUpdateWidget(oldWidget);
if (oldWidget.price != widget.price) {
print("changed");
_animationController.repeat(
reverse: true, period: Duration(milliseconds: 1000));
}
}
@override
void dispose() {
_animationController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return AnimatedBuilder(
animation: _animationController,
builder: (context, _) {
return Container(
height:100,
width:double.infinity,
decoration: BoxDecoration(
color: Theme.of(context).canvasColor,
borderRadius: BorderRadius.circular(10),
boxShadow: [
BoxShadow(
blurRadius: 4 * _animationController.value,
color: primaryColor.withOpacity(0.7),
),
],
),
);
});
【问题讨论】: