javascript - SafeAreaView 导致屏幕上出现奇怪的间隙

标签 javascript ios react-native safeareaview

我的 React Native 应用程序的屏幕上开始出现一些奇怪的空白。

我简化了一个屏幕,所以您可以在此处看到问题:

<SafeAreaView style={{flex:1, backgroundColor: 'yellow'}}>
    <View style={{flex: 1, backgroundColor: 'green'}}>

    </View>
</SafeAreaView>

当我进入后台模式并重新打开应用程序(在 iPhone 12 上快速滑动手势)时,问题消失了。参见示例:

Weird gap in bottom of screen

最佳答案

问题可能与导航组件中的冲突 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>

OR 用于带 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 的更多详细信息 here

关于javascript - SafeAreaView 导致屏幕上出现奇怪的间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67650379/

相关文章:

javascript - 如何改进这段代码(数组数据过滤)

ios - dateFromString 返回 nil

iphone - UIWebView 中的谷歌地图从核心传递数据

javascript - 使用 moment 获取日期和当前日期之间的时间差

javascript - 同一域上的 iframe 的权限被拒绝 - Apache vhost cfg 问题?

javascript - 在ReactJS中修改list/objs的正确方法

android - React native bundle js卡住了

reactjs - 在react-navigation 5中将函数作为参数传递

java - 通过 JSF 中的 java 脚本启用/禁用按钮

ios - 不使用 JSON 的简单 RestKit 登录