web-dev-qa-db-fra.com

Obtenez la hauteur de SafeAreaView depuis BottomTabBar

J'essaie d'utiliser react-native-keyboard-spacer conjointement avec react-navigation .

Je règle actuellement la topSpacing de l'entretoise clavier sur -49, qui correspond à la hauteur de la barre de tabulation de react-navigation, mais la barre de tabulation se trouve dans un SafeAreaView auquel magiquement ajoute un remplissage pour déplacer le contenu une zone qui n'interfère pas avec l'interface utilisateur native.

Cela signifie que lorsque vous affichez l'application sur un iPhone X ou un appareil similaire, la barre d'onglets devient plus grande que 50.

Quel serait le meilleur moyen d’atteindre la hauteur de la variable SafeAreaView?

7
00a5

Voici la liste de remplissage de react-navigation SafeAreaView

Mode paysage

paddingLeft: 44
paddingRight: 44
paddingBottom: 24
paddingTop: 0

Mode portrait

paddingLeft: 0
paddingRight: 0
paddingBottom:34
paddingTop:44  // ... Including Status bar height
4
Pritish Vaidya

Vous pouvez utiliser la zone react-native-safe-area . il fournit la fonction pour obtenir une zone de sécurité insérée haut, bas, gauche, droite.

import SafeArea, { type SafeAreaInsets } from 'react-native-safe-area'

//Retrieve safe area insets for root view

SafeArea.getSafeAreaInsetsForRootView()
.then((result) => {
   console.log(result)
   // { safeAreaInsets: { top: 44, left: 0, bottom: 34, right: 0 } }
})
1
Mohammed Ashfaq