React Native 文本位于对象后面

React Native text goes behind object

大家好,我遇到了一些文本被另一个对象重叠的问题。

这里是 image 正在发生的事情。

可以看到第二行文字在白色图形的后面,请问如何让它变成白色图形的上方呢?我尝试了 z 顺序和其他各种位置,但无法解决这个问题。

此代码:

白色方块的代码:

const Square = () => {
  return <View style={styles.square} />;
};

然后是主要代码

<View style={{flex: 1, padding: 0}}>
      {isLoading ? (
        <Text>Loading...</Text>
      ) : (
        <SafeAreaView style={{flex: 1, backgroundColor: '#8af542'}}>
          <View
            style={{
              marginTop: 150,
              alignItems: 'center',
              justifyContent: 'center',
            }}>
            <Text>TEST</Text>
            <Text
              style={{
                position: 'absolute',
                top: 140,
                zIndex: 1,
                elevation: 1,
              }}>
              TEXT HERE
            </Text>
          </View>
          <View
            style={{
              flex: 1,
              justifyContent: 'flex-end',
              marginBottom: windowHeight * -0.05,
            }}>
            <Square></Square>
          </View>
        </SafeAreaView>
      )}
    </View>

然后是样式:

const styles = StyleSheet.create({
  centerItems: {
    justifyContent: 'center',
    alignItems: 'center',
  },
  square: {
    width: windowWidth,
    height: windowHeight * 0.6,
    backgroundColor: 'white',
    flex: 1,
    justifyContent: 'flex-end',
    marginBottom: windowHeight * -0.05,
    position: 'absolute',
  },
});

发生这种情况是因为您设置了 TEXT HERE 视图的 zIndex,而不是您想要在底部的视图。要解决此问题,只需将以下内容添加到广场的视图中,如下所示:

       <View
        style={{
          marginTop: 150,
          alignItems: 'center',
          justifyContent: 'center',
          zIndex: 100
        }}>
        <Text>TEST</Text>
        <Text
          style={{
            position: 'absolute',
            top: 140,
            zIndex: 1,
            elevation: 1,
          }}>
          TEXT HERE
        </Text>
      </View>

然后,如果这对您没有帮助,请像这样设置正方形的视图 zIndex: -1

      <View
        style={{
          flex: 1,
          justifyContent: 'flex-end',
          marginBottom: windowHeight * -0.05,
          zIndex: -1
        }}>
        <Square></Square>
      </View>

当这样做时,我们实际上是在告诉视图切换位置,并且带有空格的视图被强制到底部。