React Native:如何更改状态栏图标颜色

lon*_*fed 15 ios react-native ios9

我似乎无法找到一种方法将状态栏图标的颜色更改为白色 - 位于屏幕顶部,例如时间和电池.

iPhone 6截图

我已经尝试在info.plist中添加以下内容

  • 状态栏样式:UIStatusBarStyleLightContent
  • 查看基于控制器的状态栏外观:否

但似乎只适用于以前版本的IOS.任何帮助非常感谢.

Dav*_*ski 30

您需要StatusBarIOS在React Native组件中使用:

StatusBarIOS.setStyle('light-content')

文档:http://facebook.github.io/react-native/docs/statusbarios.html#content

编辑:自RN 0.22起,StatusBarIOS已被弃用,StatusBar应使用跨平台.如上所述,它仍然被迫使用:

StatusBar.setBarStyle('light-content', true);

但是,建议使用此组件的方法是声明性的.例如:

 <View>
   <StatusBar
     backgroundColor="blue"
     barStyle="light-content"
   />
   <Navigator
     initialRoute={{statusBarHidden: true}}
     renderScene={(route, navigator) =>
       <View>
         <StatusBar hidden={route.statusBarHidden} />
         ...
       </View>
     }
   />
 </View>
Run Code Online (Sandbox Code Playgroud)

请在此处查看新文档:http://facebook.github.io/react-native/docs/statusbar.html

  • @DaveSibiski 谢谢。原来是 **react-native-router** 在此处调用 `setStyle`:https://github.com/t4t5/react-native-router/blob/53f74e48bfb06272148d48454ea913d8f62008ff/index.js,因此应用程序的初始渲染从那里继承状态栏样式。 (2认同)