我正在使用const item = "CACHED ITEM 2"
const names = ["CACHED ITEM 1"];
if (_.contains(names,item))
console.log(true)
else
console.log(false)
打开一个屏幕,该屏幕可能会在屏幕打开时显示警报对话框-屏幕尝试显示的项目不再有效或已删除。
由于OpenContainer会在动画过程中渲染屏幕,因此警报对话框会显示多次。
我尝试解决该问题的方法是修改OpenContainer animation
方法以将动画状态返回到OpenContainer buildPage
回调。是否有更好的方法可以完成而无需修改openBuilder
代码?
OpenContainer
用于重现问题的代码-https://gist.github.com/MartinJLee/0992a986ad641ef5b4f477fb1ce69249
答案 0 :(得分:0)
您可以像这样将侦听器添加到AnimationController中
考虑您有一个类似的AnimationController-
AnimationController _animationController = AnimationController(
vsync: this,
duration: Duration(seconds: 5),
);
然后,您可以使用addStatusListener方法向此_animationController
添加状态侦听器,类似这样-
_animationController.addStatusListener((status) {
if(status == AnimationStatus.completed){
//Do something here
}
});
每次动画状态更改时都会调用此侦听器。
希望这会有所帮助!
答案 1 :(得分:0)
我能够在openBuilder的容器上使用以下代码。
void initState() {
super.initState();
WidgetsBinding.instance
.addPostFrameCallback((_) => yourFunction(context));
}