LoginSignup
3
4

More than 3 years have passed since last update.

RN応用編2:TabやDrawerメニューにアイコンを設定する

Last updated at Posted at 2018-10-28

既存編、応用編1からの続きです。

シリーズ

概要

応用編1ではハンバーガーメニューで見た目をいじったので、ついでにTabやDrawerメニューにアイコンを追加してみます。

Tabメニューにアイコンを追加

アイコンもいくつかの場所で追加できますが、ここではcreateBottomTabNavigator()にnavigationOptionsを定義することで追加してみます。

Tabにアイコンを追加します。react-native-vector-iconsを利用するので、installやimportがまだであれば実行してください。

App.js(抜粋)
+import Icon from 'react-native-vector-icons/FontAwesome';

.....

//Tab
const Tab = createBottomTabNavigator(
    {
        Tab1: {
            screen: createStackNavigator({ Tab1: { screen: Tab1 } }),
+            navigationOptions: {
+                tabBarIcon: ({ tintColor }) => <Icon size={24} name="home" color={tintColor} />
+            }
        },
        Tab2: { 
            screen: createStackNavigator({ Tab2: { screen: Tab2 } }),
+            navigationOptions: {
+                tabBarIcon: ({ tintColor }) => <Icon size={24} name="cog" color={tintColor} />
+            }
        },
    }
);

.....

動作確認します。

スクリーンショット 2018-10-27 22.29.47.png

Tabにアイコンが追加されました。

Drawerメニューにアイコンを追加

次にDrawerメニューにアイコンを追加してみます。

記述場所はTabと同じくcreateDrawerNavigator()のnavigationOptionsです。

App.js(抜粋)
.....

//drawer
const Drawer = createDrawerNavigator(
    {
        Stacks: {
            screen: Stack,
            navigationOptions: {
                drawerIcon: <Icon name="check" size={24} />
            }
        },
        Tabs: {
            screen: Tab,
            navigationOptions: {
                drawerIcon: <Icon name="check" size={24} />
            }
        },
        Single1: { screen: Single1 },
        Single2: { screen: Single2 },
    },
    {
        initialRouteName: 'Tabs'
    }
);

.....

確認してみます。
2箇所のみ、かつ全て同じアイコンになっていますが、お好みで変更してみてください。

スクリーンショット 2018-10-27 22.36.38.png

以上なります。

 関連リンク

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4