React-Native Animated.timing без ускорения - PullRequest
0 голосов
/ 07 февраля 2019

Я использую PanGestureHandler из react-native-gesture-handler:

<PanGestureHandler
        onGestureEvent={this._onGestureEvent}
        onHandlerStateChange={this._onHandlerStateChange}>
   <View/>
</PanGestureHandler>


 _onHandlerStateChange = event => {
    if (event.nativeEvent.oldState === State.ACTIVE) {
       this._lastOffset.y += event.nativeEvent.translationY;
       if (this._lastOffset.y <= 200) {
         this._lastOffset.y = 0;
         Animated.timing(this._translateY, {
           toValue: 100,
           duration: 500,
           }).start();
           return;
         } else {
       this._translateY.setOffset(this._lastOffset.y);
       }
    this._translateY.setValue(0);
  }
};


this._onGestureEvent = ({ nativeEvent }) => {
    this._translateY.setValue(nativeEvent.translationY);
};

Я хотел, чтобы, если пользователь перетаскивает View ниже 200, он плавно анимировался до 100. Но когда я перетаскиваю это View иногда он оживляет ожидаемую позицию, но в большинстве случаев он идет выше или ниже ожидаемой позиции.Я предполагаю, что это из-за ускорения или скорости, которые react-native-gesture-handler обеспечивают Animated.timing.Как можно отключить ускорение Animated.timing.

...