【问题标题】:flex:1 hides the <SafeAreaView>flex:1 隐藏 <SafeAreaView>
【发布时间】:2020-12-08 20:34:24
【问题描述】:

我的 react-native 屏幕看起来有点像这样:

export const JourneyResultScreen: React.FunctionComponent = () => {
  return (
    <SafeAreaView style={styles.safeAreaViewContainer}>
      <View style={styles.container}>
        <Text>HELO</Text>
      </View>
    </SafeAreaView>
  );
};

const styles = StyleSheet.create({
  safeAreaViewContainer: { flex: 1, backgroundColor: 'red'},
  container: {  flex: 1, backgroundColor: 'pink'},
});

SafeAreaView(红色) 在除此屏幕之外的所有屏幕上都能正常工作,即使我在所有地方都使用相同的样式。它应该显示在顶部和底部。这里它只显示在底部而不是顶部。在这种情况下,它被 View(粉红色)隐藏。

如果我不将flex:1 添加到&lt;View&gt;,那么我根本看不到粉红色并且整个屏幕都是红色(safeAreaView 的背景颜色)。

如何修复顶部的 SafeAreaView?为什么会被 View 重叠?

【问题讨论】:

    标签: javascript html css reactjs react-native


    【解决方案1】:

    问题出在此容器的父级之一。您使用的是 react-native 或 react-native-safe-area-context 的 SafeAreaView 吗?

    【讨论】:

    • 但这是一个完整的屏幕,没有这样的父级。 SafeAreaView 来自 react-native。这可能是由于导航。正如这里所讨论的github.com/facebook/react-native/issues/29694
    • 这将是导航。您使用的是 react-native-screens,还是仅使用 react-navigation 中的标准导航器?
    • 我正在使用 react-navigation 通过创建堆栈在组件之间导航。 等。我已将导航代码添加到 GitHub 问题中。
    • 我会在 react-navigation 上打开一个问题
    猜你喜欢
    • 1970-01-01
    • 2010-09-27
    • 2011-03-04
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    相关资源
    最近更新 更多