flexbox----react native中的布局方式

flexbox,一种类似于流布局的布局方式,就是让组件按照一定的规律进行自动排列,涉及到四个重要属性:占比(flex)分布方向(flexDirection)内容调整方式(justifyContent)整体对齐方式(alignItems)

其中,父组件通过指定分布方向(flexDirection)、内容调整方式(justifyContent)、整体对齐方式(alignItems)来决定其子组件的分布情况;子组件通过指定占比(flex)来决定其在父组件中占据的空间比例。
分布方向

flexDerection,决定组件沿着哪个方向分布,备选的方案有按行分布(row)和按列分布(column)。
候选项:row, column
内容调整方式
justifyContent,这个决定了组件沿着既定的分布方向如何进行排列,比如按照行分布的情况下,可以选择全部靠左集中,也可以选择全部靠右集中,又或者是均匀分布,具体有以下候选项,可以逐一试试效果。
候选项有:flex-start, center, flex-end, space-around, and space-between
需要留意的是,当子组件的使用占比(后面会讲)来确定大小时,该选项不生效。
整体对齐方式
alignItems,决定组件在按照上面两个属性的约束排列以后,怎样在与分布方向垂直的方向上分布。
候选项:flex-start, center, flex-end, and stretch
stretch是拉伸,只有当组件在拉伸方向的尺寸没有被指定时,拉伸才有效。
占比
flex,这个决定了各个组件在排列的时候相对于其他组件所占据的空间比例,用整数表示可以是1,2,3,4,5,……。这个属性如何起作用呢,就是如果一共有两个组件按行排列,他们的flex属性分别是1和2,那么flex为1的组件宽度占据父组件的宽度的1/3,而flex为2的组件宽度占据父组件宽度的2/3。就是这么简单。

注意,如果子组件使用占比来自动调整大小,那么父组件样式中justifyContent选项不起作用。

来自官网的例子:

<View style={{
        flex: 1,
        flexDirection: 'column',
        justifyContent: 'center',
        alignItems: 'center',
      }}>
   <View style={{width: 50, height: 50, backgroundColor: 'powderblue'}} />
   <View style={{width: 50, height: 50, backgroundColor: 'skyblue'}} />
   <View style={{width: 50, height: 50, backgroundColor: 'steelblue'}} />
</View>

效果:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值