【ReactNative】Tab Navigation(ver5.0)を使って画面遷移を実装
本記事の内容
  • Tab Navigation(ver5.0)を使った画面遷移の方法

について解説していきます。

また、以下の記事で、他のNavigationを使った画面遷移の方法も紹介していますので、ぜひそちらもご覧ください。

Stack Navigation Drawer Navigation

1. 概要

1.1 Tab Navigation

Tab Navigationには、以下の3種類があります。

・createBottomTabNavigator
   画面の下部にタブメニューを表示。
   公式ドキュメント: createBottomTabNavigator

・createMaterialBottomTabNavigator
   画面の下部にマテリアルデザインをテーマにしたタブメニューを表示。タブの切り替え時にアニメーションが付きます。
   公式ドキュメント: createMaterialBottomTabNavigator

・createMaterialTopTabNavigator
   画面の上部にタブメニューを表示。
   公式ドキュメント: createMaterialTopTabNavigator

と言うことで、今回は、createMaterialBottomTabNavigatorを使って、画面遷移を実装していきます。

本記事を読むことでこのようなアプリを作ることができます。

2. TabNabigationの実装
(createMaterialBottomTabNavigator)

2.1 パッケージのインストール

まず、ターミナルで以下のコマンドを実行してパッケージをインストールします。

2.2. ソースコード

フォルダ構成
今回のプログラムのフォルダ構成は、以下になっています。

App.js

  • @react-navigation/material-bottom-tabsをインポートする。
  • Tab.Screenにタブに表示させたい画面を設定する。
  • ヘッダーやタブメニューのカスタマイズ。
<Tab.Navigator>コンポーネントについて解説
<Tab.Navigator>コンポーネントのプロパティ
initialRouteName ナビゲーターのデフォルト画面を設定します。
activeColor 選択中のタブの「アイコン」と「ラベル」の色を設定。
inactiveColor 選択されていないタブの「アイコン」と「ラベル」の色を設定。
shifting タブの切り替え時にアイコンとラベルが浮き上がるように表示されるアニメーション。
非選択中のタブにはラベルが表示されない。
※タブの数が4つ以上の場合、デフォルトで”true”が設定されているが、
3つ以下の場合は、”false”になっている。
アニメーションを付けたいと言う方は、”true”に設定しましょう。
labeled タブにラベルを表示するかどうか。falseの場合、アイコンのみが表示されます。
barStyle 下部のナビゲーションバーのスタイル。背景色やpaddingを設定できる

<Tab.Screenコンポーネント>について解説
<Tab.Screen>コンポーネントのプロパティ
name
component
コンポーネント名
options ナビゲーションバーの設定
options
title
(または、tabBarLabel)
タブバーに表示される文字列
tabBarIcon アイコンをタブバーに表示します。
tabBarColor 画面に対応するタブがアクティブなときのタブバーの色。
波及効果に使用されます。※これは、shiftingが”true”の場合にのみ有効になります。

もっと細かく設定したいと言う方は、下記のドキュメントを参照してください。
公式ドキュメント: createBottomTabNavigator

component/HomeScreen.js

  • デフォルト画面
  • SecondScreenに画面遷移するボタンを配置しています。

component/SecondScreen.js

  • ThidScreenに画面遷移するボタンを配置しています。

component/ThidScreen.js

  • HomeScreenに画面遷移するボタンを配置しています。

3. まとめ

今回は、material-bottom-tab-navigatorについて解説しました。
タブメニューにアニメーションを付けたいと言う方には、おすすめのライブラリになっています。