Как найти высоту строки состояния в Android через React Native?

Как я могу найти высоту строки состояния на Android через React Native?

Если я React.Dimensions высоту React.Dimensions значение, похоже, также содержит высоту строки состояния, но я пытаюсь найти высоту макета без строки состояния.

Solutions Collecting From Web of "Как найти высоту строки состояния в Android через React Native?"

Вы можете использовать пакет npm package -native-extra-dimensions-android , который предоставляет STATUS_BAR_HEIGHT который вы можете использовать для вычитания из REAL_WINDOW_HEIGHT .

Вам не нужны никакие плагины для этого (больше), просто используйте StatusBar.currentHeight :

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

EDIT: По-видимому, похоже, что это работает на Android всегда, но на iOS, первоначально undefined действительно возвращается 🙁

К сожалению, по состоянию на v0.34 API для этого все еще непоследователен на разных платформах. StatusBarManager.HEIGHT даст вам текущую высоту 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} />