我使用了 react-native-collapsible-tab-view 但它有错误。
我可以用react-native-reanimated和react-native-gesture-handler来实现吗?
这是页面结构
<View>
<Animated.View>
<FastImage
style={{weidth: '100%', height: '200'}}
source={{
uri: 'some_image.jpg',
}}
/>
</Animated.View>
<Animated.View>
<TabsProvider defaultIndex={0}>
<Tabs>
<TabScreen label='Tab1'>
<ScrollView>
<Text>SomeViews</Text>
</ScrollView>
</TabScreen>
<TabScreen label='Tab2'>
<ScrollView>
<Text>SomeViews</Text>
</ScrollView>
</TabScreen>
</Tabs>
</TabsProvider>
</Animated.View>
</View>
你可以
示例:
const animProgress = useSharedValue(0);
const handleScroll = ({ nativeEvent }) => {
animProgress.value = Math.min(1, nativeEvent.contentOffset.y / disapearLimit);
};
const animStyle = useAnimatedStyle(() => ({
transform: [{ scaleY: 1 + animProgress.value * (disapearLimit / coverHeight - 1) }],
opacity: 1 - animProgress.value,
}));
return (
<View>
<Animated.View style={[styles.coverViewWithAbsolutePosition, animStyle]}>
<View>
<ScrollView onScroll={handleScroll} scrollEventThrottle={16}>
{children}
</ScrollView>
</View>
</Animated.View>
</View>
);