React Native:动画在安卓上无法正常工作



过去 2 天我一直在尝试解决问题,它在 iOS 上运行良好

constructor(){
  super();
  this.animation = new Animated.Value(0)
  this.state = {
    expanded: false,
  };
}
toggle(){
  let initialValue = this.state.expanded? 1 : 0 ,
     finalValue = this.state.expanded? 0 : 1
  this.setState({
     expanded: !this.state.expanded,
  });
  this.animation.setValue(initialValue)
  Animated.timing(
    this.animation,
    {
      toValue: finalValue,
    }
  ).start();
}
render(){
  return(
    <Animated.View style={{{flex: 1, marginTop: 28, paddingLeft: 25, transform: [{ scale: this.animation }, {perspective: 1000 }]}}}>
     ....
    </Animated.View>
  );
}

这个组件是子组件,在父级中使用如下:<FeedBack ref={ref => this.feedback = ref}/>没有任何条件来检查显示与否(因为动画比例在构造函数中设置为零,所以不需要(

按下

按钮时,将从父级调用 toggle() 方法。

现在this works fine on iOS,当组件加载时,视图不存在,直到按下按钮(然后缩放(。 但在android加载组件时,视图已经存在。当我按下按钮时,动画视图消失并重新出现(使用动画缩放(,随后的切换工作正常。android 的问题在于,即使initialValue比例为零,视图在首次加载时仍然存在。

这一直是

安卓方面react-native的问题(叹息(。似乎将值设置为 0 会剥夺它的特征,基本上将其视为null,然后在它动画化为> 0后恢复使用其实际值

解决方法是像这样设置动画 this.animation = new Animated.Value(0.01);

您可以在此处关注问题

相关内容

  • 没有找到相关文章