【发布时间】:2020-12-06 15:40:36
【问题描述】:
无论我的新屏幕从上到下滑动,我都想创建导航动画。这段代码就像从下往上滑动一样,我不明白如何改变它。
const SlideFromTop = (props: StackCardInterpolationProps): StackCardInterpolatedStyle => {
const progress = Animated.add(
props.current.progress.interpolate({
inputRange: [0, 1],
outputRange: [0, 1],
extrapolate: 'clamp',
}),
props.next
? props.next.progress.interpolate({
inputRange: [0, 1],
outputRange: [0, 1],
extrapolate: 'clamp',
})
: 0
);
return {
cardStyle: {
transform: [
{
translateY: Animated.multiply(
progress.interpolate({
inputRange: [0, 1, 2],
outputRange: [
props.layouts.screen.height, // Focused, but offscreen in the beginning
0, // Fully focused
props.layouts.screen.height * -0.3, // Fully unfocused
],
extrapolate: 'clamp',
}),
props.inverted
),
},
],
},
};
};
我的导航看起来像
<NavigationContainer>
<Stack.Navigator
initialRouteName="List"
headerMode="none">
<Stack.Screen
name="Calendar"
component={CalendarSlider}
options={{
title: 'CalendarSlider',
cardStyleInterpolator: SlideFromTop,
}}
/>
</Stack.Navigator>
</NavigationContainer>
【问题讨论】:
标签: react-native react-navigation