Я использую 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
.