webentwicklung-frage-antwort-db.com.de

Wie finde ich die Höhe der Statusleiste in Android bis React Native?

Wie finde ich die Höhe der Statusleiste in Android bis React Native?

Wenn ich das React.Dimensions height Der Wert scheint auch die Höhe der Statusleiste zu enthalten, aber ich versuche, die Höhe des Layouts ohne die Statusleiste zu ermitteln.

37
Zohar Levin

Du brauchst dafür keine Plugins mehr, benutze einfach StatusBar.currentHeight:

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

BEARBEITEN: Anscheinend funktioniert dies auf Android immer, aber auf iOS wird anfangs undefined tatsächlich zurückgegeben :(

65
IjzerenHein

Leider ist die dazu erforderliche API ab Version 0.34 immer noch plattformübergreifend inkonsistent. StatusBarManager.HEIGHT Gibt Ihnen das aktuelle Höhe der Statusleiste auf Android.

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

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

Unter iOS können Sie getHeight() verwenden.

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

Nebenbei bemerkt, wenn Sie möchten, dass Ihre App unter der Statusleiste auf Android= ähnlich dem Standardverhalten von iOS) gezeichnet wird, können Sie dies tun, indem Sie ein paar Requisiten auf <StatusBar> Setzen. wie folgt:

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