2016-02-16 16 views

risposta

35

Non è necessario alcun plugin per questo (più), basta usare StatusBar.currentHeight:

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

EDIT: A quanto pare questo non sembra funzionare su Android sempre, ma su iOS, inizialmente undefined viene effettivamente restituito: (

+1

mi sono indefiniti tornato – Arnold

+0

@Arnold funziona nella versione più recente di reagire nativa .. – Joost

+1

Per me StatusBar.currentHeight non funziona (non definito) su iOS su reagire Native 0.39.2. –

11

Purtroppo, come della v0.34, l'API per farlo è ancora incoerente tra diverse piattaforme. StatusBarManager.HEIGHT vi darà la corrente altezza della barra di stato su Android.

import { Platform, NativeModules } from 'react-native'; 
const { StatusBarManager } = NativeModules; 

const STATUSBAR_HEIGHT = Platform.OS === 'ios' ? 20 : StatusBarManager.HEIGHT; 

Su iOS, è possibile utilizzare getHeight()

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

Come nota a margine, se si desidera che la vostra applicazione per disegnare sotto la barra di stato su Android simile al comportamento di default di iOS, è possibile farlo impostando un paio di puntelli su <StatusBar> come segue:

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

Hai salvato la mia giornata ... – Kim

+0

IOS hanno sempre 20 in altezza barra di stato ?? –

+0

@ DanielJosePadillaPeña Sì. A meno che non sia nascosto o che un'app sia attiva durante una chiamata in arrivo, nel qual caso è 40 punti. – jmurzy

Problemi correlati