J'utilise react-native-router-flux 4.0.0-beta.17 pour mon projet d'apprentissage. J'ai besoin de personnaliser l'en-tête. par exemple, la couleur de fond, l'alignement du titre, etc. Je n'ai pas pu trouver un bon document à ce sujet. L'un d'entre eux avait quelque chose comme
<Router sceneStyle={{backgroundColor: '#81b71a'}}>
<Scene key="root">
<Scene key='login' component={LoginForm} title='Please Login :)' />
</Scene>
</Router>
mais ça ne fait rien.
S'il vous plaît, donnez-moi des références sur la bonne documentation et, si possible, des informations sur la manière de styler le routeur. Où puis-je trouver un document complet?
Les accessoires sceneStyle
permettent de styler l’ensemble de votre scène/écran RNRF, qui correspond au contenu de votre écran (au-dessous de l’en-tête). Si vous souhaitez attribuer le style personnalisé à tous les en-têtes de votre scène RNRF, vous devez utiliser les accessoires navigationBarStyle
dans votre composant Routeur RNRF.
<Router navigationBarStyle={{ backgroundColor: '#81b71a' }}>
<Scene key="root">
<Scene key='login' component={LoginForm} title='Please Login :)' />
</Scene>
</Router>
Vous trouverez ci-dessous un exemple de capture instantanée si je l’utilise.
Réf.: https://github.com/aksonov/react-native-router-flux/blob/master/docs/API.md
Vous pouvez masquer l'en-tête par défaut à l'aide de hideNavBar={true}
et utiliser votre propre composant d'en-tête pour créer un en-tête entièrement personnalisable. De cette façon, vous pouvez utiliser le composant d’en-tête d’un package de composants d’interface utilisateur tel que native-base .
Peut-être que vous pouvez suivre cette référence , Cela peut être votre problème car il n’est pas correct de mettre le style car si vous voulez changer la couleur d’arrière-plan de l’en-tête, vous pouvez utiliser navigationBarStyle
sans utiliser sceneStyle
comme ceci:
<Router navigationBarStyle={styles.navBar} titleStyle={styles.navTitle} sceneStyle={styles.routerScene}>
<Schema .../>
<Route .../>
</Router>
const styles = StyleSheet.create({
navBar: {
flex: 1,
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'center',
backgroundColor: 'red', // changing navbar color
},
navTitle: {
color: 'white', // changing navbar title color
},
routerScene: {
paddingTop: Navigator.NavigationBar.Styles.General.NavBarHeight, // some navbar padding to avoid content overlap
},
})
J'espère que cette référence peut vous aider.