I am attempting to use react-native-keyboard-spacer
in conjunction with react-navigation
.
I am currently setting the topSpacing
of the keyboard spacer to be -49
which is the height of the tab bar from react-navigation
, but the tab bar is within a SafeAreaView
which magically adds padding to move content into an area that doesn't interfere with native UI.
This means that when viewing the app on an iPhone X, or other similar devices, the tab bar becomes taller than 50
.
What would be the best way to get the height of the SafeAreaView
?
import { useSafeAreaInsets } from 'react-native-safe-area-context'; ... const insets = useSafeAreaInsets(); Then you can get the bottom safe area height from safeAreaInsets.
forceInset takes an object with the keys top | bottom | left | right | vertical | horizontal and the values 'always' | 'never' . Or you can override the padding altogether by passing an integer. There is also a Snack available to demonstrate how forceInset behaves.
Here is the list padding from react-navigation
SafeAreaView
paddingLeft: 44
paddingRight: 44
paddingBottom: 24
paddingTop: 0
paddingLeft: 0
paddingRight: 0
paddingBottom:34
paddingTop:44 // ... Including Status bar height
Another option with react-native-safe-area-context
(https://github.com/th3rdwave/react-native-safe-area-context):
import { useSafeAreaInsets } from 'react-native-safe-area-context';
...
const insets = useSafeAreaInsets();
Then you can get the bottom safe area height from safeAreaInsets.bottom
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With