从底视图顶部对齐元素

时间:2020-09-22 09:06:32

标签: react-native

我的主视图下有两个视图

    <View style={styles.container}>
      <View style={styles.header}>
        <Image
          resizeMode="contain"
          source={require("../assets/logo-large.png")}
          style={styles.logo}
        />
      </View>

      <View style={styles.content}>
        <TextInput
          style={styles.input}
          onChangeText={(email) => setEmail(email)}
          defaultValue={email}
          placeholder="Your email"
          autoCompleteType="email"
          textContentType="emailAddress"
        ></TextInput>
      </View>

我的样式代码如下:

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: "#fff",
  },
  header: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "gold",
  },
  content: {
    flex: 2,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "lightblue",
  },
});

我想要实现的是在屏幕顶部放置一个带有徽标的header,在下面放置一个content,但是我想将content中的所有元素顶部对齐。目前,这些元素在center中已content对齐。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

由于主视图默认默认为flex-direction = column,因此内容样式justifyContent: "center",将内容的元素排列在垂直的中间,而alignItems: "center"将其元素放置在水平的中心。您需要删除这些内容,以使内容元素从顶部开始。

请将您的样式更新为以下样式。

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: "#fff",
  },
  header: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "gold",
  },
  content: {
    flex: 2,
    alignItems: "center",
    backgroundColor: "lightblue",
  },
});

祝你好运

答案 1 :(得分:0)

我已经使用justifyContentheader样式的footer对其进行了调整。

  header: {
    flex: 1,
    justifyContent: "flex-end",
    alignItems: "center",
    backgroundColor: "gold",
    paddingBottom: "10%",
  },
  content: {
    flex: 2,
    justifyContent: "flex-start",
    alignItems: "center",
    backgroundColor: "lightblue",
  },