如何在本机反应中使状态栏透明?

Posted

技术标签:

【中文标题】如何在本机反应中使状态栏透明?【英文标题】:How to make statusbar transparent in react native? 【发布时间】:2021-06-28 12:23:29 【问题描述】:

我的状态栏背景颜色在尝试使其透明时变为白色。

<SafeAreaView style= flex: 1 >
    <StatusBar
         animated=true
         backgroundColor="transparent"
         barStyle="dark-content"
         translucent=true
     />
     <View>
         ...
     </View>
   </SafeAreaView>

如果我使用状态栏背景颜色为红色或绿色,它会反映在状态栏中。但是当我使用状态栏背景颜色作为“透明”时,它显示了一些白色阴影。如果我删除背景颜色标签,它会显示一个灰色状态栏。

我也在 navigationOption 中使用 paddingTop

虽然没有提到背景颜色:

而状态栏中提到的红色背景颜色:

状态栏的透明背景色:

版本使用: 反应原生:0.61.5

【问题讨论】:

它看起来像透明的,因为你的背景是白色的。你能把你的背景换成另一种颜色再试一次吗? @PrantikMondal 感谢您的回复@SickRanchez。我已经通过删除完整视图进行了测试。只保留状态栏。尽管如此,它还是显示出一些灰色。 【参考方案1】:

如果您想实现状态栏,请在 App.js 中使用它。根据我的经验,问题出在 SafeAreaView 上。这是我的一个项目中的一个 sn-p。

export default function App()    return (
    <NavigationContainer>
      <StatusBar
        animated=true
        backgroundColor="transparent"
        barStyle='dark-content'
        translucent=true
      />
      <RootStackScreen />
    </NavigationContainer>   ); 

【讨论】:

以上是关于如何在本机反应中使状态栏透明?的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中使底部导航栏不透明?

是否可以在本机反应中绘制状态栏?

未设置反应本机状态栏背景颜色

Android 如何在 Nexus 中使状态和工具栏透明

状态栏透明度不起作用

反应本机状态栏不适用于android中的反应导航