reactnative Flexbox布局

使用flexDirection、alignItems和 justifyContent

三个样式属性就已经能满足大多数布局需求。译注:这里有一份简易布局图解,可以给你一个大概的印象。

flexDirection 可以决定布局的主轴 子元素是应该沿着水平轴(row)方向排列,还是沿着竖直轴(column)方向排列呢?默认值是竖直轴(column)方向。

当flexDirection = row, column

export default class RNFlex extends Component{
  render() {
  return (
      
          
          
          
      
     );
     }
}
  const styles = StyleSheet.create({
      container: {
      height :300,
      margin:40,
     flexDirection :'column'
    },
});
flexDirection = row
reactnative Flexbox布局_第1张图片
flexDirection = column

justifyContent可以决定其子元素沿着主轴的排列方式。子元素是应该靠近主轴的起始端还是末尾段分布呢?亦或应该均匀分布?对应的这些可选项有:flex-start、center、flex-end、space-around以及space-between。


        
        
        
 
reactnative Flexbox布局_第2张图片
flexDirection = row ,justifyContent = flex-start
reactnative Flexbox布局_第3张图片
flexDirection = column ,justifyContent = flex-start
reactnative Flexbox布局_第4张图片
flexDirection = column ,justifyContent = center
reactnative Flexbox布局_第5张图片
flexDirection = row ,justifyContent = center
reactnative Flexbox布局_第6张图片
flexDirection = column ,justifyContent = flex-end
reactnative Flexbox布局_第7张图片
flexDirection = row ,justifyContent = flex-end
reactnative Flexbox布局_第8张图片
flexDirection = row ,justifyContent = space-around
reactnative Flexbox布局_第9张图片
flexDirection = column ,justifyContent = flex-around
reactnative Flexbox布局_第10张图片
flexDirection = row ,justifyContent = space-between

]

reactnative Flexbox布局_第11张图片
flexDirection = column ,justifyContent = space-between

alignItems可以决定其子元素沿着次轴(与主轴垂直的轴,比如若主轴方向为row,则次轴方向为column)的排列方式。子元素是应该靠近次轴的起始端还是末尾段分布呢?亦或应该均匀分布?对应的这些可选项有:flex-start、center、flex-end以及stretch。

注意:要使stretch选项生效的话,子元素在次轴方向上不能有固定的尺寸。以下面的代码为例:只有将子元素样式中的width: 50去掉之后,alignItems: 'stretch'才能生效。

reactnative Flexbox布局_第12张图片
关于Flexbox 布局的流程 示意图

你可能感兴趣的:(reactnative Flexbox布局)