私の学習プロジェクトでは、react-native-router-flux 4.0.0-beta.17を使用しています。ヘッダーをカスタマイズする必要があります。たとえば、背景色、タイトルの配置などです。それについての適切なドキュメントが見つかりませんでした。それらの1つは次のようなものでした
<Router sceneStyle={{backgroundColor: '#81b71a'}}>
<Scene key="root">
<Scene key='login' component={LoginForm} title='Please Login :)' />
</Scene>
</Router>
しかし、それは何もしません。
良いドキュメントについてのリファレンスと、可能であれば、ルータのスタイルを設定する方法についての情報を教えてください。包括的なドキュメントはどこにありますか?
sceneStyle
プロパティは、画面のコンテンツ部分(ヘッダーの下)であるすべてのRNRFシーン/画面のスタイル設定に使用されます。すべてのRNRFシーンヘッダーにカスタムスタイルを指定する場合は、RNRFルーターコンポーネントでnavigationBarStyle
プロパティを使用する必要があります。
<Router navigationBarStyle={{ backgroundColor: '#81b71a' }}>
<Scene key="root">
<Scene key='login' component={LoginForm} title='Please Login :)' />
</Scene>
</Router>
以下は、私が使用する場合のスナップショットの例の1つです。
参照: https://github.com/aksonov/react-native-router-flux/blob/master/docs/API.md
hideNavBar={true}
を使用してデフォルトのヘッダーを非表示にし、独自のヘッダーコンポーネントを使用して完全にカスタマイズ可能なヘッダーを作成できます。このようにして、UIコンポーネントパッケージのヘッダーコンポーネントを native-base のように使用できます。
たぶんこれに従うことができます reference 、ヘッダーの背景色を変更したい場合はnavigationBarStyle
を使用できますsceneStyle
like this:
<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
},
})
この参考資料がお役に立てば幸いです。
ヘッダーバーのテキストスタイルを変更する簡単な方法:react-native-router-flux
<Scene key="myJobs"
title={'My Listings'}
iconName="myJobs"
hideNavBar={false}
component={MyJobs}
titleStyle={{
color: '#ffffff',
fontSize: 22,
fontFamily: FontFamilyBold,
fontWeight: '700',
justifyContent: 'center',
marginLeft: 30,
}}
/>
routerのsceneStyleプロップは、すべてのシーンに適用されるスタイルで、完全にオプションです。
<Router sceneStyle={{ backgroundColor: '#81b71a' }}>
<Stack key="root">
<Scene key='sample page' component={Sample} title='Sample Page'/>
</Stack>
</Router>
これにより、次のような結果が得られます。
@wlisrausrによって前述したように、RouterでnavigationBarStyleプロップを使用できます。
<Router navigationBarStyle={{ backgroundColor: '#81b71a' }}>
<Stack key="root">
<Scene key='sample page' component={Sample} title='Sample Page'/>
</Stack>
</Router>
結果が得られます: