前言

React中引入了flexbox概念,flexbox是属于web前端领域CSS的一种布局方案,是2009年W3C提出了一种新的布局方案,可以简便、完整、响应式地实现各种页面布局。你可以简单的理解为flexbox是CSS领域类似Android中 LinearLayout的一种布局,但是要比 LinearLayout要强大的多。

本文主要讲述Flex布局,包含以下几个:

  • flexDirection
  • flexWrap
  • justifyContent
  • alignItems
  • flex

Flex布局

Flex布局概念

React Native开发之——Flex布局
图是W3C Flexbox布局模型:

flexbox由伸缩容器和伸缩项目组成;任何一个元素都可以指定flexbox布局,伸缩容器的子元素可以称为伸缩项目;伸缩项目使用伸缩布局模型来排版;在默认情况下,伸缩容器由两根轴组成:主轴(main axis)和交叉轴(cross axis),主轴的开始位置叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end;伸缩项目在主轴上占据的空间叫做main size,在交叉轴上占据的空间叫做cross size;

React Native目前版本为0.54, 本文所用属性位于APIs->Layout Props下
React Native开发之——Flex布局

flexDirection

属性说明

flexDirection控制主轴的方向,它有四个值:

  • ‘row’
  • ‘row-reverse’
  • ‘column’
  • ‘column-reverse’

React Native开发之——Flex布局

代码

React Native开发之——Flex布局

效果图

React Native开发之——Flex布局React Native开发之——Flex布局

flexWrap

属性说明

flexWrap控制当子view到达末尾时是否绕行,它有两个值(默认是nowrap):

  • wrap
  • nowrap

React Native开发之——Flex布局

代码

增加到12个Text
React Native开发之——Flex布局

效果

flexWrap=nowrap时,如下:

React Native开发之——Flex布局

flexWrap=wrap时,如下:

React Native开发之——Flex布局

justifyContent

属性说明

justifyContent,用来定义伸缩项目沿主轴线的对其方式:,它有以下6个值:

  • flex-start
  • flex-end
  • center
  • space-between
  • space-around
  • space-evenly

React Native开发之——Flex布局

代码

React Native开发之——Flex布局

效果图

React Native开发之——Flex布局

alignItems

属性说明

alignItems,用来定义交叉轴的对其方式:,它有以下5个值:

  • flex-start
  • flex-end
  • center
  • stretch
  • baseline

React Native开发之——Flex布局

代码

React Native开发之——Flex布局

效果图

React Native开发之——Flex布局

flex

属性说明

flex(数值型的属性值):类似于Android中的layout-weight,用于收缩项目向右尽可能扩展。
React Native开发之——Flex布局

代码

React Native开发之——Flex布局

效果

React Native开发之——Flex布局


相关文章:

  • 2022-12-23
  • 2021-05-22
  • 2021-10-20
  • 2021-09-13
  • 2021-07-03
  • 2022-12-23
  • 2022-12-23
  • 2021-10-13
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-01
  • 2021-08-31
相关资源
相似解决方案