首页 文章

alignItems:'flex-end' doesn 't work properly (it doesb' t覆盖整个页面) - 反应原生[重复]

提问于
浏览
2

这个问题在这里已有答案:

所以在我的主页上我有4个按钮,我已经用flex布局了 . 我设置了父的flex:1,这意味着它覆盖了整个页面(我已经用backgroundColor确定了它) . 我的问题是,当我设置alignItems:'flex-end'时,按钮只会向下移动一点,好像flex只覆盖了页面的一半 .

这是我的代码标记:

<Card style={styles.cardStyle}>
      <CardSection style={styles.containerStyle}>
        <Button onPress={() => navigate("NewScreen")}>
          New
        </Button>
      </CardSection>

      <CardSection style={styles.containerStyle}>
        <Button onPress={() => navigate("SavedScreen")}>
          Saved
        </Button>
      </CardSection>

      <CardSection style={styles.containerStyle}>
        <Button onPress={() => navigate("ParametersScreen")}>
          Settings
        </Button>
      </CardSection>

      <CardSection style={styles.containerStyle}>
        <Button onPress={() => navigate("FMRScreen")}>
          FMR
        </Button>
      </CardSection>

    </Card>

卡片样式:

cardStyle: {
    flex: 1,
    flexDirection: 'row',
    flexWrap: 'wrap',
    justifyContent: 'space-around',
    alignItems: 'center',
    backgroundColor: '#0000ff',
}

CardSection风格:

containerStyle: {
    borderBottomWidth: 1,
    padding: 5,
    backgroundColor: '#fff',
    borderColor: '#ddd',
    height: 150,
    width: 150,
    borderRadius: 20,
    marginTop: 10,
},

和项目的风格:

textStyle: { 
    color: '#007aff',
    fontSize: 20,
    fontWeight: '600',
},
buttonStyle: {
    backgroundColor: 'rgba(255, 255, 255, 0)',
    borderWidth: 0,
    borderColor: '#007aff',
    flex: 1,
    flexDirection: 'column',
    justifyContent: 'center',
    alignItems: 'center',
},

这就是我得到的:

enter image description here

请注意,如果我删除flexWrap:'wrap',这个问题就会消失,但我不能这样做!

有任何想法吗?

1 回答

  • 2

    您需要执行类似这样的操作才能使其正常工作,其中 <Card> 元素是flex项目的外部最灵活的父元素 .

    请注意添加的 alignContent: 'flex-end' ,这是flex项目换行时所需要的

    <Card style={styles.containerStyle}>
    
      <CardSection style={styles.sectionStyle}>
        <Button onPress={() => navigate("NewScreen")}>
          New
        </Button>
      </CardSection>
    
      <CardSection style={styles.sectionStyle}>
        <Button onPress={() => navigate("SavedScreen")}>
          Saved
        </Button>
      </CardSection>
    
      <CardSection style={styles.sectionStyle}>
        <Button onPress={() => navigate("ParametersScreen")}>
          Settings
        </Button>
      </CardSection>
    
      <CardSection style={styles.sectionStyle}>
        <Button onPress={() => navigate("FMRScreen")}>
          FMR
        </Button>
      </CardSection>
    
    </Card>
    
    containerStyle: {
        flex: 1,
        flexDirection: 'row',
        flexWrap: 'wrap',
        justifyContent: 'space-around',
        alignItems: 'flex-end',
        alignContent: 'flex-end',
        backgroundColor: '#0000ff',
    }
    
    sectionStyle: {
        borderBottomWidth: 1,
        padding: 5,
        backgroundColor: '#fff',
        borderColor: '#ddd',
        height: 150,
        width: 150,
        borderRadius: 20,
        marginTop: 10,    
    }
    

相关问题