为什么StatusBar.translucent无法在expo应用程序中运行

时间:2017-06-25 19:48:53

标签: android react-native expo

我的应用程序的标题由Android上的StatusBar覆盖。我所做的一切,都无法让它被覆盖。

我试过了:

<StatusBar translucent={false} />

StatusBar.setTranslucent(false)

但它没有任何效果。

更多信息:

2 个答案:

答案 0 :(得分:0)

在app.json或expo.json中,您可以添加这些属性。

"androidStatusBarColor": "#00796a",
 "androidStatusBar": {
      "barStyle": "light-content",
      "backgroundColor": "#00796a"
 },

答案 1 :(得分:0)

我在这个问题上苦苦挣扎了两个小时。因此,我认为这可能会对其他人有所帮助。

@ dondragon2的回答对我来说是正确的。关键是当您在状态栏上设置颜色时,半透明关闭。我一直在努力,因为我不知道到底发生了什么,这对我的应用程序产生了一些副作用。因此,我认为这些细节可能会对其他人有所帮助。

问题:

Expo默认将StatusBar半透明模式设置为ON,随后通过代码进行的任何更改均无效。

解决方案

在旧版本的app.json或expo.json中,通过setting the StatusBar color关闭半透明模式。之后,您可以按照RN documents

中所述更改StatusBar配置。

为什么

我的想法是,世博会的目标是使开发变得容易和跨平台。半透明模式与IOS更加相似,因此通过将其设置为默认值,使它成为零配置,甚至您也不需要设置颜色,因为我们为您设置了灰色层!因此,Expo假定设置颜色表示StatusBar不透明。您想要不透明的颜色吗?在app.json中设置颜色,并在整个应用程序中观看它而无需任何代码,并且半透明的颜色也会自动关闭。但是,我不明白为什么我们不能通过代码和使用RN API关闭半透明!