无加速的React-Native Animated.timing

时间:2019-02-07 08:12:47

标签: react-native react-animated

我正在使用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的加速。

0 个答案:

没有答案