diff --git a/packages/stack/src/views/StackView/StackViewLayout.js b/packages/stack/src/views/StackView/StackViewLayout.js index ec20f5a8..ee16bca8 100644 --- a/packages/stack/src/views/StackView/StackViewLayout.js +++ b/packages/stack/src/views/StackView/StackViewLayout.js @@ -174,9 +174,12 @@ class StackViewLayout extends React.Component { if (Platform.OS === 'ios' && supportsImprovedSpringAnimation()) { Animated.spring(this.props.transitionProps.position, { toValue: resetToIndex, - stiffness: 5000, - damping: 600, + stiffness: 6000, + damping: 100, mass: 3, + overshootClamping: true, + restDisplacementThreshold: 0.01, + restSpeedThreshold: 0.01, useNativeDriver: USE_NATIVE_DRIVER, }).start(); } else { @@ -215,8 +218,11 @@ class StackViewLayout extends React.Component { Animated.spring(position, { toValue, stiffness: 7000, - damping: 600, + damping: 300, mass: 3, + overshootClamping: true, + restDisplacementThreshold: 0.01, + restSpeedThreshold: 0.01, useNativeDriver: USE_NATIVE_DRIVER, }).start(onCompleteAnimation); } else { diff --git a/packages/stack/src/views/StackView/StackViewTransitionConfigs.js b/packages/stack/src/views/StackView/StackViewTransitionConfigs.js index 1dc86b38..9b4e5f89 100644 --- a/packages/stack/src/views/StackView/StackViewTransitionConfigs.js +++ b/packages/stack/src/views/StackView/StackViewTransitionConfigs.js @@ -10,6 +10,9 @@ if (supportsImprovedSpringAnimation()) { stiffness: 1000, damping: 500, mass: 3, + overshootClamping: true, + restDisplacementThreshold: 0.01, + restSpeedThreshold: 0.01, }; } else { // This is an approximation of the IOS spring animation using a derived bezier curve