是否可以将动画 setValue 与 useNativeDriver 一起使用?

Is it possible to use animated setValue with useNativeDriver?

我正在翻译视图以跟随移动手势,尽可能减少延迟。

我正在研究几个选项,其中之一是 - 如果可能的话 - 将 setValue 操作发送到 UI 线程,而不是 JS 线程。

尽管在文档中指出 Animated.timing、Animated.spring 等类型的函数可以使用 useNativeDriver: true 指令卸载到 UI 线程,没有参考 - 至少我可以找到 - 关于是否可以将直接 setValue 操作发送到 UI 线程。

我的问题是;是否可以将动画 setValue 与 useNativeDriver 一起使用,如果可能的话如何使用。

下面是我使用的代码的粗略示例:

export default class App extends React.Component {

  constructor(props) {
    super(props);
    this.state = {};
    this.spaceAnimatedTranslations = new Animated.ValueXY();
    this._animatedStyle = {
      transform: [
        { translateX: this.spaceAnimatedTranslations.x }, 
        { translateY: this.spaceAnimatedTranslations.y }
      ]
    };
  }

  onSpaceMove(event) {
    this.spaceAnimatedTranslations.setValue({x: event.nativeEvent.translationX, y: event.nativeEvent.translationY});
  }

  render(){
    return <PanGestureHandler
        key={`test`}
        onGestureEvent={e => this.onSpaceMove(e)}>
      <Animated.View
          ref={ref => {
            this.testAnimatedView = ref;
          }}
          style={[this._animatedStyle]}>
        <View style={styles._box_content}>
          {someContent}
        </View>
      </Animated.View>
    </PanGestureHandler>
  }

}

您必须使用 Animated.event 直接在本机线程中进行映射。参见 Tracking gestures。其他可能性是将 react-native-reanimatedreact-native-gesture-handler.

一起使用