如何通过React NativefindAndroid状态栏的高度?

如何通过React Native在Android上find状态栏的高度?

如果我检查React.Dimensions高度值似乎也包括状态栏高度,但我试图find没有状态栏的布局的高度。

  • Android:显示/隐藏状态栏/电源栏
  • Phonegap Cordova - 全屏后底部的黑色状态栏
  • CoordinatorLayout即使使用windowTranslucentStatus和fitsSystemWindows也不会在状态栏后面绘制
  • 当显示对话框片段时,状态栏重叠,仅在Android4.4中
  • 使用动作模式时,状态栏在棒棒糖上变黑
  • 防止状态栏出现android(修改)
  • 问题与windowTranslucentNavigation
  • 如何在应用程序运行时在状态栏中显示图标,包括在后台?
  • 你可以使用npm包react-native-extra-dimensions-android ,它提供了STATUS_BAR_HEIGHT ,你可以使用它从REAL_WINDOW_HEIGHT减去。

    你不需要任何插件(只要使用StatusBar.currentHeight

     import {StatusBar} from 'react-native; console.log('statusBarHeight: ', StatusBar.currentHeight); 

    编辑:显然这似乎总是在Android上工作,但在iOS上,最初undefined确实返回:(

    不幸的是,从v0.34开始,执行此操作的API在各个平台上仍然不一致。 StatusBarManager.HEIGHT将为您提供Android上状态栏的当前高度

     import { Platform, NativeModules } from 'react-native'; const { StatusBarManager } = NativeModules; const STATUSBAR_HEIGHT = Platform.OS === 'ios' ? 20 : StatusBarManager.HEIGHT; 

    在iOS上,您可以使用getHeight()

     StatusBarManager.getHeight((statusBarHeight)=>{ console.log(statusBarHeight) }) 

    另外,如果您希望您的应用在Android上的状态栏下绘制,类似于默认的iOS行为,您可以通过在<StatusBar>上设置一对道具来实现,如下所示:

     <StatusBar translucent={true} backgroundColor={'transparent'} {...props} />