模板版本:v0.2.2
[!TIP] Github 地址
请到三方库的 Releases 发布地址查看配套的版本信息:@react-native-oh-tpl/react-native-stickyheader Releases 。对于未发布到npm的旧版本,请参考安装指南安装tgz包。
进入到工程目录并输入以下命令:
npm install @react-native-oh-tpl/react-native-stickyheader
yarn add @react-native-oh-tpl/react-native-stickyheader
下面的代码展示了这个库的基本使用场景:
[!WARNING] 使用时 import 的库名不变。
import React, { useState, useCallback, useRef, useEffect } from "react";
import { StyleSheet, Text, View, FlatList, Animated } from "react-native";
import StickyHeader from "react-native-stickyheader";
function App() {
const scrollY = useRef(new Animated.Value(0));
const [data, setData] = useState([]);
useEffect(() => {
let array = [];
for (let index = 0; index < 100; index++) {
array.push(index);
}
setData(array);
}, []);
const renderItem = useCallback((info) => {
return (
<View style={{ height: 50, backgroundColor: "#ffffff" }}>
<Text>{info.item}</Text>
</View>
);
}, []);
const keyExtractor = useCallback((item, index) => {
return index + "";
}, []);
return (
<View style={styles.container}>
<View style={{ height: 64, backgroundColor: "#973444" }} />
<Animated.ScrollView
onScroll={Animated.event(
[
{
nativeEvent: { contentOffset: { y: scrollY.current } },
},
],
{ useNativeDriver: true },
)}
scrollEventThrottle={1}
>
<Text>文字</Text>
<Text>文字</Text>
<Text>文字</Text>
<Text>文字</Text>
<StickyHeader
stickyHeaderY={60} // 滑动到多少悬浮
stickyScrollY={scrollY.current}
>
<View style={{ height: 60, backgroundColor: "#d22222" }} />
</StickyHeader>
<FlatList
data={data}
keyExtractor={keyExtractor}
renderItem={renderItem}
/>
</Animated.ScrollView>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#ffffff",
justifyContent: "center",
},
});
export default App;
在下述版本验证通过:
- RNOH:0.72.20; SDK:HarmonyOS NEXT Developer Preview2; IDE:DevEco Studio 5.0.3.200; ROM:205.0.0.18;
[!TIP] "Platform"列表示该属性在原三方库上支持的平台。
[!TIP] "HarmonyOS Support"列为 yes 表示 HarmonyOS 平台支持该属性;no 则表示不支持;partially 表示部分支持。使用方法跨平台一致,效果对标 iOS 或 Android 的效果。
此组件有以下属性:
Property | Type | Required | Description | Platform | HarmonyOS Support |
---|---|---|---|---|---|
StickyHeaderY | number | NO | 滑动到多少悬浮 | Android IOS |
YES |
StickyScrollY | any | Yes | 动画的ScrollY回调 | Android IOS |
YES |
本项目基于 The MIT License (MIT) ,请自由地享受和参与开源。