Skip to content

Instantly share code, notes, and snippets.

@simontreny
Last active March 16, 2019 08:33
Show Gist options
  • Save simontreny/d115ab1dd5d70103d405d8ca6fef5e82 to your computer and use it in GitHub Desktop.
Save simontreny/d115ab1dd5d70103d405d8ca6fef5e82 to your computer and use it in GitHub Desktop.
Utilisation de setState() pour rendre fixe l'entête
// Ajout de scrollOffset à l'état
state = { text: "", scrollOffset: 0 };
render() {
return (
<ScrollView
style={{ flex: 1, backgroundColor: "white" }}
// Mis à jour de scrollOffset sur l'évènement onScroll
onScroll={e => this.setState({ scrollOffset: e.nativeEvent.contentOffset.y })}
// scrollEventThrottle={1} est nécessaire afin d'être notifié
// de tous les évènements de défilement
scrollEventThrottle={1}
>
{this.renderHeader()}
{this.renderContent()}
</ScrollView>
);
}
renderHeader() {
const headerHeight = 240;
return (
<View
style={{
height: headerHeight,
// Déplacement de l'entête dans la direction opposée au défilement
transform: [{ translateY: this.state.scrollOffset }],
// zIndex est utilisé pour que l'entête soit toujours au dessus du contenu
zIndex: 100,
}}
>
/* ... */
</View>
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment