React Native:如何在Android中使StatusBar透明?

时间:2018-09-20 14:27:40

标签: android react-native statusbar

有人知道使用React Native透明化Android状态栏的方法吗?

不透明,透明。

我也在使用反应导航。

谢谢。

8 个答案:

答案 0 :(得分:10)

只是使用是这样的: 经过测试:“ react-native”:“ 0.60.4”

<StatusBar translucent backgroundColor="transparent" />

答案 1 :(得分:2)

除非你使用 Statusbar 作为组件,否则试试这个方法。

useFocusEffect(
    useCallback(() => {
      StatusBar.setBarStyle("dark-content");
      Platform.OS === 'android' && StatusBar.setBackgroundColor('transparent');
      StatusBar.setTranslucent(true);
    }, []),
  );

不要忘记给最外面的paddingTop一些View

答案 2 :(得分:2)

这对我来说适用于安卓

<StatusBar
   backgroundColor="transparent"
   translucent={true}
/>

答案 3 :(得分:0)

如果您要谈论的是操作系统的状态栏(您下拉菜单来访问wifi /蓝牙/设置等),请尝试将其添加到MainActivity.java中:

private void hideNavigationBar() {
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}

您可以在同一MainActivity.java中的此函数中调用该^函数

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    hideNavigationBar();
}

但是,如果您正在谈论应用程序的StatusBar,请尝试将其添加到您的App.js文件中

static navigationOptions = {
    header: null
}

答案 4 :(得分:0)

尝试使用此方法在android中制作透明的状态栏

container: {
      flex:1,
      paddingTop: 20
    },

将display flex和paddingTop添加到主要View组件中

答案 5 :(得分:0)

您可以使用StatusBar.setBackgroundColor(Colors.TRANSPARENT);

进行设置

答案 6 :(得分:-1)

我认为您的意思是不显示在屏幕上。如果是这样,则添加隐藏属性,例如:

<StatusBar hidden />   //add other props if you need...

您可以在以下位置签出完整文档: react native statusbar

答案 7 :(得分:-3)

在react native中,如果您正在使用expo,则可以转到app.json文件并添加状态栏颜色。整个应用程序状态栏的背景颜色更改后。

"androidStatusBar": {
  "backgroundColor": "#105846"
},

检查链接页面。