javascript - SafeAreaView 导致屏幕上出现奇怪的间隙
问题描述
我的 React Native 应用程序的屏幕上开始出现一些奇怪的空白。
我已经简化了一个屏幕,所以您可以在这里看到问题:
<SafeAreaView style={{flex:1, backgroundColor: 'yellow'}}>
<View style={{flex: 1, backgroundColor: 'green'}}>
</View>
</SafeAreaView>
当我进入后台模式并重新打开应用程序(在 iPhone 12 上快速滑动手势)时,问题消失了。参见示例:
解决方案
问题可能与导航组件中的 SafeAreaView 冲突有关。您可以像这样跳过 SafeArea 的底部填充,
import {SafeAreaView} from 'react-native-safe-area-context';
<SafeAreaView
edges={['right', 'top', 'left']}
style={{flex: 1, backgroundColor: 'yellow'}}>
<View style={{flex: 1, backgroundColor: 'green'}}></View>
</SafeAreaView>
或用于带有 Hooks 的功能组件
import { useSafeAreaInsets } from 'react-native-safe-area-context';
const insets = useSafeAreaInsets();
<View
style={{
paddingTop: Math.max(insets.top, 16),
flex: 1,
backgroundColor: 'yellow',
}}>
<View style={{flex: 1, backgroundColor: 'green'}}></View>
</View>
有关react-native-safe-area-context
API的更多详细信息,请单击此处
推荐阅读
- ipfs - 是否需要集群来固定 ipfs 专用网络中的文件?
- android - 如何向 AOSP 添加自定义 INTENT 以授予对系统级控制调用的访问权限?
- drools - 如何在 OWL 本体上运行 Drools 规则引擎(KIE)?
- odata - ADF - Odata - 如何执行可选选择
- kotlin - Kotlin:多个命名的伴随对象
- python - 将具有相同大小和索引的数据帧相乘
- python - 如何删除字符串中的字母
- gnu-make - 如何根据条件的输出执行不同的配方?
- angular - Angular8 PrimeNG 反应形式的下拉菜单 - 初始值
- bash - 如何从bash中的随机子域中检索主域