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

vyswwuz2  于 2022-12-30  发布在  React
关注(0)|答案(4)|浏览(188)

我似乎找不到一种方法来改变状态栏图标的颜色为白色-在屏幕的顶部,例如时间和电池。

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

  • 状态栏样式:UI状态条样式灯内容
  • 查看基于控制器的状态栏外观:否

但似乎只在以前版本的IOS中工作。任何帮助都非常感谢。

k5hmc34c

k5hmc34c1#

您需要在React Native组件中使用StatusBarIOS
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>

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

gcuhipw9

gcuhipw92#

我也遇到了同样的问题,下面的文档(https://reactnative.dev/docs/statusbar#barstyle)没有帮助。
因此,我刚刚在StatusBar组件上执行了一个Opt+Click,以查找可以更改哪些 prop ,以及它提供了哪些方法。
我找到的 prop 片段:

export declare type StatusBarStyle = 'auto' | 'inverted' | 'light' | 'dark';
export declare type StatusBarAnimation = 'none' | 'fade' | 'slide';
export declare type StatusBarProps = {
    /**
     * Sets the color of the status bar text. Default value is "auto" which
     * picks the appropriate value according to the active color scheme, eg:
     * if your app is dark mode, the style will be "light".
     */
    style?: StatusBarStyle;

我使用了这些信息并更新了StatusBar组件,如下所示:

<StatusBar style="light" />

瞧,我改变了图标和文字的颜色为白色!

mkh04yzy

mkh04yzy3#

我不得不使用react-native-safe-area-context,下面是我是如何做到的。

// ./screens/MyScreen.js
import { StatusBar } from 'react-native';
import { SafeAreaView } from 'react-native-safe-area-context';

const backgroundColor = 'red';

export default () => (
  <View>
    <SafeAreaView edges={['top']} style={{ backgroundColor }}>
      <StatusBar />
    </SafeAreaView>

    <View style={{ backgroundColor }}>
      <Text style={{ fontSize: 36 }}>Heading</Text>
    </View>
  </View>
);
uxhixvfz

uxhixvfz4#

使用barStyle=“暗内容”...例如:第一个月

相关问题