android 上的“SafeAreaView”相当于什么 - React Native

Níc*_*las 6 javascript mobile android reactjs react-native

基本上,我正在创建一个 react-native 应用程序,我希望我的徽标图像不与通知/状态栏重叠,并且我不想marginTop手动设置属性,因为通知栏的大小在不同型号的手机,我发现如果我<View/>用一个<SafeAreaView/>组件替换我的组件,我的问题就会解决。

虽然它对 IOS 很有效,但对 android 根本不起作用。当然,经过快速研究后,我发现这是一个仅限 IOS 的组件,当您尝试在 Android 上使用它时,该<SafeAreaView/>组件会返回一个常规的<View/>返回值。

所以,我试图找出是否有适用于 android 的组件或解决方法。

Bor*_*mer 15

是的,状态栏高度因设备而异,因此您可以从 react-native 导入状态栏,或从 Expo 导入 Constants,以便您可以根据所使用的设备获取实际状态栏高度。

import { StyleSheet, Platform, StatusBar } from "react-native";
import Constants from 'expo-constants';
const statusBarHeight = Constants.statusBarHeight
Run Code Online (Sandbox Code Playgroud)

  • @rekire Constants 是 expo-constants 库。它并不是指变量是“常量”。它获取应用程序正在使用的设备的状态栏的高度。所以从这个意义上来说它是动态的。 (2认同)