A react native component that can hide navigator bar when user swipe list.
The demo app from the GIF can be found at ./example
.
To build and run the example app:
git clone https://github.com/fengliu222/react-native-swipe-hidden-header.git
cd react-native-swipe-hidden-header/examples
npm install
react-native run-ios
$ npm install --save react-native-swipe-hidden-header
$ yarn add react-native-swipe-hidden-header
USAGE
Use internal scrollView:
render() {
return (
<SwipeHiddenHeader
header={()=> <View style={styles.header}><Text style={styles.headerText}>Header</Text></View>}
>
<View style={styles.block}>
<Text>This is content</Text>
</View>
</SwipeHiddenHeader>
);
}
Use custom scrollView:
render() {
return (
<SwipeHiddenHeader
header={()=> <View style={styles.header}><Text style={styles.headerText}>Custom</Text></View>}
renderScrollComponent={()=> <FlatList
data={[{key: 'a'},{key: '2'},{key: '2a'},{key: '3a'},{key: 'a4'},{key: 'a1'}, {key: 'b'}, {key: 'b2'}, {key: 'b3'}, {key: 'b1'}]}
renderItem={(item)=> <TouchableOpacity onPress={()=> props.changeType('normal')} style={styles.block}><Text>Tap here to Custom list view</Text></TouchableOpacity>}
/>}
/>
);
}
Prop | Type | Description |
---|---|---|
children |
ReactElement<any> |
React Element(s) to render. |
header |
() => ReactElement<any> |
Callback that renders a header component |
renderScrollComponent |
?() => ReactElement<any> |
Callback that renders a ScrollComponent. |
startHiddenHeaderOffset |
?number |
When offsetY reach this value, header will start hide. |
headerWrapStyle |
?Object |
The styles of the header wrap element. |
iOS / Android