我正在使用底片react-native-reanimated(v2.2.0)
制作动画,我还需要使用动画更改底片内一个视图的不透明度。
预期的行为。
当底片出现时,视图的不透明度会降低。所以在底页关闭时视图的不透明度应该为 1,当底页打开时不透明度为 0。
问题
我interpolate
用来获取底部页面顶部位置之间的不透明度值0
以及1
相对于底部页面顶部位置的不透明度值,并useAnimatedStyle
用于动画不透明度。
const derived = useDerivedValue(() => {
const opacity = interpolate(
top.value,
{
inputRange: [top.value, 0],
outputRange: [0, 1],
},
[top.value],
);
return opacity.value;
});
const style = useAnimatedStyle(() => {
return {
opacity: derived.value,
};
});
然后我在我的上面使用上述样式Animated.View
<PanGestureHandler onGestureEvent={gestureHandler}>
<Animated.View style={[BottomSheetStyles, bottomSheetAnimatedStyles]}>
<Animated.View //view i need to change opacity
style={[MinPlayerStyles, style]}
onPress={() => (top.value = withSpring(0, SPRING_CONFIG))}>
<Text>Card</Text>
</Animated.View>
</Animated.View>
</PanGestureHandler>