React Navigation:设置TabNavigator文本的样式

ala*_*nan 2 javascript css react-native react-navigation

我在create-react-native-app中使用React Navigation

我正在使用这样的TabNavigator组件(iPhone SE):

在此处输入图片说明

TabNavigator是深蓝色的条,带有“作业1”,“聊天”,“文件”,“详细信息”。

我要自定义这些项目的文本。我想要非大写的文本(据我所知,这是用React Native Stylesheet不可能实现的),并为包裹在两行上的'Details'项目应用修复程序。

我在TabNavigator上浏览了React Navigation API,但是找不到答案。

如何为这些物品定型?

Kri*_*gid 18

只需对新版本的 React Native 执行此操作

<Tab.Navigator
    screenOptions={({ route }) => ({
      tabBarActiveTintColor: "#f5610a",
      tabBarInactiveTintColor: "#555",
      tabBarLabelStyle: {
        fontSize: 10,
      },
    })}
  >
Run Code Online (Sandbox Code Playgroud)

正如您在上面的代码行中看到的那样......只需输入以下内容

tabBarLabelStyle: {
  fontSize: 10,
},
Run Code Online (Sandbox Code Playgroud)

里面

 screenOptions={({ route }) => ({  })}
Run Code Online (Sandbox Code Playgroud)


小智 10

<Tab.Navigator 
  tabBarOptions={{
    labelStyle: { textTransform: "none", },
      style: {
        /* ** */
      },
}}>

  <Tab.Screen name="Screen 1" component={Screen1} />
  <Tab.Screen name="Screen 2" component={Screen2} />
</Tab.Navigator>
Run Code Online (Sandbox Code Playgroud)

  • 虽然此代码可以解决问题,但[包括解释](//meta.stackexchange.com/q/114762) 如何以及为何解决问题确实有助于提高帖子的质量,并可能会带来更多结果赞成票。请记住,您是在为将来的读者回答问题,而不仅仅是现在提问的人。请[编辑]您的答案以添加解释并指出适用的限制和假设。[来自评论](/review/late-answers/26311094) (6认同)

Hri*_*mov 7

您可以使用javascript来解决非大写问题:

navigationOptions: {
  tabBarLabel: 'Job #1'.toLowerCase(),
},
Run Code Online (Sandbox Code Playgroud)

或使用tabBarOptions属性upperCaseLabel

tabBarOptions: {
  upperCaseLabel: false,
}
Run Code Online (Sandbox Code Playgroud)

为了避免自动换行,建议您减小标签的字体大小:

tabBarOptions: {
  labelStyle: {
    fontSize: 10,
    margin: 0,
    padding: 0,
  },
}
Run Code Online (Sandbox Code Playgroud)

最后,它必须看起来像这样:

TabNavigator({
    ...
    filesTab: {
      screen: filesTabComponent,
      navigationOptions: {
        tabBarLabel: 'Files'.toLowerCase(),
      },
    },
    ...
  },
  {
    tabBarPosition: 'bottom',
    tabBarOptions: {
        upperCaseLabel: false,
    },
  }
);
Run Code Online (Sandbox Code Playgroud)