[英]React native Android fade animation flashing in loop
在 React Native 0.61 中,我有一个脉冲 animation 正在发生。 它在 iOS 上正常工作,但在 Android 上不能正常工作。
这是代码:
state = { fadeAnim: new Animated.Value(1), springValue: new Animated.Value(0), }; runPulseAnimation() { Animated.loop( Animated.parallel([ Animated.timing(this.state.springValue, { toValue: 1, friction: 3, tension: 40, duration: 1500, }), Animated.timing(this.state.fadeAnim, { toValue: 0, duration: 1500, }), ]), ).start(); }
循环正常发生,但是在 Android 上,在 animation 结束后,不透明度在 spring 值重置之前切换回 1。 同样,这不会发生在 iOS 上。
有人遇到这样的事情吗?
在您的情况下,默认值似乎没有被初始化。 如果您尝试做的是重复性任务,您想试试这个吗?
runPulseAnimation() {
this.state.fadeAnim.setValue(1)
this.state.springValue.setValue(0)
Animated.parallel([
Animated.timing(this.state.springValue, {
toValue: 1,
friction: 3,
tension: 40,
duration: 1500,
}),
Animated.timing(this.state.fadeAnim, {
toValue: 0,
duration: 1500,
}),
]).start(() => this.runPulseAnimation());
}
终于解决了。 不是从 1 开始,然后淡入到 0,因为我的视图的开头隐藏在另一个不透明度为 1 的视图后面,我能够对动画进行排序,淡入淡出,并在 1 处开始淡入淡出。
state = { fadeAnim: new Animated.Value(0), springValue: new Animated.Value(0), };
let fadeInAndOut = Animated.sequence([ Animated.timing(this.state.fadeAnim, { toValue: 1, duration: 750, }), Animated.timing(this.state.fadeAnim, { toValue: 0, duration: 750, }), ]); Animated.loop( Animated.parallel([ fadeInAndOut, Animated.timing(this.state.springValue, { toValue: 1, friction: 3, tension: 40, duration: 1500, }), ]), ).start();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.