隐藏TabNavigator中的标签 - ReactNavigation

时间:2017-10-16 12:24:37

标签: reactjs react-native react-navigation tabnavigator

如何隐藏TabNavigator中的标签并仅显示icons?如果我执行以下操作:

const Tabs = TabNavigator({
  Home: {
    screen:MainHome,
    navigationOptions: ({ navigation }) => ({
        title: "Home",  //Tried to hide this for next tab Search.
        tabBarIcon: ({ tintColor, focused }) => <View><MaterialIcons name="home"/></View>
      })
  },
  Search: {
    screen:TestComp1,
    navigationOptions: ({ navigation }) => ({
      //If no title it shows the name as Search.
      tabBarIcon: ({ tintColor, focused }) => <View><MaterialIcons name="accessibility"/></View>
    })

  }
}, { 

   tabBarPosition: 'bottom',

   tabBarOptions: {
    showIcon: true,
    activeTintColor: '#e91e63',  //Not working for icons.
    inactiveBackgroundColor: 'green', // Not working at all.
    style: {backgroundColor: '#3498DB', height: 60, padding:0, margin:0}
  }
});

如果我从title移除navigationOptions,则会显示标签的名称(HomeSearch)。我只想显示图标并更改活动icon的颜色。 activeTintColor没有为图标工作。

2 个答案:

答案 0 :(得分:6)

showLabel有{{1}}道具,您可以设置。有关详细信息,请参阅docs for v1docs for v2

  

showIcon - 是否显示标签图标,默认为false

     

showLabel - 是否为标签显示标签,默认为true

答案 1 :(得分:5)

以下是显示没有标签的图标的示例。

tabBarOptions: {
  showLabel: false,
  showIcon: true,
  tintColor: '#333',
  activeTintColor: '#aaa',
}

我定义了tintColor和activeTintColor来更改活动标签的标签颜色。要更改活动标签的图标颜色,您需要为每个标签定义tabBarIcon并将tintColor传递给它。例如,如果您有搜索选项卡,则可以这样执行:

Search: {
  screen: SearchScreen,
  navigationOptions:{
    tabBarIcon: ({ tintColor }) => (
      <Icon name="ios-search" style={{color:tintColor}} />
    )
  }
},