弹性盒模型(The Flexible Box Module),又叫FlexBox,意为“弹性布局”,旨在通过弹性的方式来对齐和分布容器中内容的空间,使其能适应不同的屏幕,为盒装模型提供最大的灵活性。
FlexBox在大部分情况下都是处理Item在Container中位置和尺寸的关系。
FlexBox在布局中能解决很多问题,如浮动布局、屏幕适配、水平垂直居中、自动分配宽度等。
flexDirection属性用来设置主轴的方向,即视图中子控件的排列顺序,有如下几种选项:
justifyContent属性用来设置伸缩项在主轴线的对齐方式,有如下几种选项:
alignItems属性用来设置伸缩项在侧轴上的对齐方式(侧轴永远垂直于主轴),有如下几种选项:
flexWrap属性用来设置流式布局(当所有项不能显示在一行中时,换行显示)的样式,有如下几种选项:
注意:flexWrap属性在iOS上可以正常设置,但在Android上如果不加额外的设置,则只会显示第一行,解决方法是添加style:alignItems: ’flex-start’
flex属性是flex-grow、flex-shrink和flex-basis三个属性的组合体,其中后两个属性是可选属性。三个属性具体解释如下:
元素在容器中的宽度/高度的计算公式:宽/高度 = 弹性宽度 * (flow-grow / sum(flow-grow));
alignSelf属性允许单个元素有与其他元素不一样的对齐方式,有如下几种选项:
注意:alignSelf属性相当于将父容器的alignItems属性进行了覆盖。
let Dimensions = require(‘Dimensions‘);
let width = Dimensions.get(‘window‘).width;
let Dimensions = require(‘Dimensions‘);
let {width, height, scale} = Dimensions.get(‘window‘);
原文:http://www.cnblogs.com/itgungnir/p/6441057.html