reactjs - 如何在 React Native 中使用选项卡制作视差滚动视图?
问题描述
我目前尝试使用标签栏制作一些滚动视图。
如果我向下滚动,标签栏固定在顶部。
这是我想要的例子。
https://i.stack.imgur.com/ITZHJ.gif
如果你知道如何制作这个或我可以使用的 NPM,请让我知道你是否拥有它。
谢谢阅读!!
这是我自己尝试但失败了..
<Animated.ScrollView
scrollEventThrottle={5}
showsVerticalScrollIndicator={false}
onScroll={Animated.event(
[{nativeEvent: {contentOffset: {y: this.nScroll}}}],
{useNativeDriver: true},
)}
style={{zIndex: 0}}>
<Animated.View
style={{
transform: [
{translateY: Animated.multiply(this.nScroll, 0.65)},
{scale: this.imgScale},
],
backgroundColor: THEME_COLOR,
}}>
解决方案
您可以使用FlatList
它stickyHeaderIndices={[0]}
来保持ListHeaderComponent
粘性,并且data
传入取决于选项卡状态
const [ tab, setTab ] = useState(1)
// you should add at least keyExtractor and renderItem props...
<FlatList
stickyHeaderIndices={[0]}
ListHeaderComponent={ <Tabs setTab={setTab} /> } // create `Tabs` component of the nav, use `props.setTab` to change `tab` state
data={ tab == 1 ? tab1data : tab2data } // assuming tab1data is array
/>
更多关于FlatList
https://reactnative.dev/docs/flatlist
推荐阅读
- python - 如何在 pandas 的分组 DataFrame 中的多个列上应用多个自定义函数?
- r - 如何在 R 中的同一直方图上添加频率和百分比?
- css - React-Bootstrap Navbar 没有粘在页脚
- binance - 如何使用 Binance API 查询 MARGIN / ISOLATED 钱包余额?
- javascript - 允许用户在 HTML 中只输入分数和整数(但不是混合数字)?
- android - 从 MainActivity 文件调用按钮
- c++ - 这两种打印带小数部分的浮点数的方式有何不同?
- reactjs - Flask socket IO - socket.on 方法中的发送和返回有什么区别
- java - 将 SearchView 与 ArrayList Android Studio 一起使用
- php - 如何使用 Laravel 8 中的关系打印各个帖子的所有评论