1. ヘッダー関連の設定
ヘッダーのデザインや動作を変更できます。
プロパティ | 説明 |
---|---|
title | ヘッダーに表示する画面タイトル。 |
headerTitle | カスタムコンポーネントまたは関数でタイトルを表示。 |
headerStyle | ヘッダー全体のスタイルを設定(背景色など)。 |
headerTitleStyle | ヘッダーのタイトルのスタイル(フォントや色など)。 |
headerTintColor | 戻るボタンやアイコンの色を設定。 |
headerShown | ヘッダーを表示するかどうか(true / false )。 |
headerTransparent | ヘッダーを透明にする(背景画像の上に配置する場合など)。 |
headerLeft | ヘッダー左側に表示するカスタムコンポーネントを指定。 |
headerRight | ヘッダー右側に表示するカスタムコンポーネントを指定。 |
headerBackTitle | 戻るボタンのテキストをカスタマイズ(デフォルトは前の画面のタイトル)。 |
headerBackVisible | 戻るボタンを表示するかどうかを指定(true / false )。 |
2. ジェスチャーやトランジションの設定
画面遷移や戻るジェスチャーに関する設定。
プロパティ | 説明 |
---|---|
gestureEnabled | ジェスチャーで画面を閉じられるか(スワイプなど)。 |
gestureDirection | ジェスチャーの方向(horizontal / vertical など)。 |
animationEnabled | 画面遷移時のアニメーションを有効にするか(true / false )。 |
animationTypeForReplace | 画面をリプレースする際のアニメーション(push / pop )。 |
3. タブナビゲーションやドロワーナビゲーション用の設定
タブやドロワーで利用する場合のオプション。
プロパティ | 説明 |
---|---|
tabBarVisible | タブバーを表示するかどうか(true / false )。 |
tabBarStyle | タブバーのスタイル(背景色や高さなど)。 |
tabBarIcon | タブバーのアイコンをカスタマイズする関数またはコンポーネント。 |
drawerLabel | ドロワーに表示されるラベル。 |
drawerIcon | ドロワーに表示されるアイコン。 |
4. ステータスバーの設定
ステータスバー(画面最上部のバッテリーや時刻が表示されるエリア)に関する設定。
プロパティ | 説明 |
---|---|
statusBarStyle | ステータスバーのスタイル(dark-content / light-content )。 |
statusBarHidden | ステータスバーを非表示にするか(true / false )。 |
statusBarBackgroundColor | ステータスバーの背景色(Androidのみ)。 |
5. その他のカスタマイズ
その他、特定のシナリオで役立つ設定。
プロパティ | 説明 |
---|---|
cardStyle | 画面全体のスタイル(背景色など)。 |
cardOverlayEnabled | 画面遷移時のオーバーレイ(半透明の背景)を有効にする。 |
presentation | モーダルのスタイルを指定(modal / card など)。 |
setOptionsの実装例
動的なタイトルの設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import React, { useLayoutEffect } from 'react'; import { View, Text } from 'react-native'; const DetailScreen = ({ navigation, route }) => { const { itemId } = route.params; useLayoutEffect(() => { navigation.setOptions({ title: `Item ${itemId}`, // 動的にタイトルを変更 headerTintColor: 'white', headerStyle: { backgroundColor: 'tomato' }, }); }, [navigation, itemId]); return ( <View> <Text>Detail Screen for Item {itemId}</Text> </View> ); }; export default DetailScreen; |
カスタムヘッダーの設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import React from 'react'; import { Button } from 'react-native'; const HomeScreen = ({ navigation }) => { React.useLayoutEffect(() => { navigation.setOptions({ headerRight: () => ( <Button onPress={() => alert('This is a button!')} title="Info" color="#000" /> ), }); }, [navigation]); return null; }; export default HomeScreen; |
コメント