2016-02-16 28 views

回答

35

你並不需要爲這個(再)任何插件,只需使用StatusBar.currentHeight

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

編輯:顯然,這似乎在Android上總是工作,但在iOS上,最初確實返回undefined: (

+1

我得到未定義,返回 – Arnold

+0

@Arnold它可以在反應本土.. – Joost

+1

對我來說StatusBar.currentHeight不起作用(不確定)的最新版本,在iOS上反應原住民0.39.2。 –

11

不幸的是,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} /> 
+0

你救了我的一天... – Kim

+0

IOS總是20狀態欄高度? –

+0

@DanielJosePadillaPeña是的。除非它被隱藏,或者一個應用程序在來電時處於活動狀態 - 在這種情況下,它是40分。 – jmurzy

相關問題