react-native-flex布局

为了解决写RN的时候 总是会遇到 ‘应该是这样写’的问题 所以呢 打算彻底的把布局知识研究一下。

准备大招中......

首先我们来了解一下flex布局。

flex布局是在2009年由W3C组织提出的一种全新的布局方案。这种布局方案可以解决传统页面无法伸缩的问题,相比传统的盒子布局,flex更加灵活。
引入flex布局模型的目的就是提供一种更加有效的方式来对一个容器中的条目进行排列、对齐、空白空间分配。即便容器中的条目的尺寸未知或是动态变化的,flex布局模型也能正常工作。在flexBox布局模型中,容器会根据布局的需要,调整其中包含的条目的尺寸和顺序来恰当的填充所有可用的空间,当容器的尺寸由于屏幕大小或者窗口尺寸发生变化时,其中包含的条目也会动态的调整。

image.png

正如上图一样,flex布局主要是由两条互相垂直的坐标轴组成,分别就是主轴和交叉轴。但具体哪条是主轴并不是确定的,需要我们来自己定义,
所以在正常情况下,我们在使用的时候,首先先来定义主轴的方向,例如定义水平方向的轴为主轴,那么垂直方向就是交叉轴,或者定义垂直方向为主轴,那么水平方向就是交叉轴。

容器内的条目可以是一行或者多行。而主轴就是确定了每一行里面所有条目的排列方向,而交叉轴确定的就是行本身的排列方向。

再简单一点来说就是所有的布局都是父视图与子视图的关系,我们要确定的就是首先要确定的就是子视图再父视图上是横着排列还是竖着排列,这个时候就需要我们来确定垂直轴和水平轴哪个是主轴。如果是横向排列,那么水平轴就是主轴,垂直轴就是交叉轴,如果竖向排,那么垂直轴就是主轴,水平轴就是交叉轴。

在我们确定完主轴与交叉轴之后,我们还需要确定一个东西,那就是在主轴上的东西我们是要从前往后排还是从后往前排。交叉轴也一样,是从上往下,还是从下往上,(这个地方我们以水平轴为主轴举例,反之一样),而这个排列方式的起始我们就叫它主轴起始、主轴结束、交叉轴起始、交叉轴结束。

好了,关于主轴交叉轴的定义就这样,不懂多读几遍。。。。

上面扯了一大堆,到底该咋写还是不知道。。

接下来就是该咋写。。

flexBox布局属性

常用的几个布局属性有

flexDirection:这个属性控制的就是主轴的方向。

  • row: 默认值,主轴的方向为从左到右排列
  • row-reverse: 和row的方向相反,从右到左排列
  • column: 从上到下排列
  • colume-reverse: 从下到上排列
flexDirection.jpg

flexWrap:这个属性用来控制伸缩容器内是单行还是多行。同时也确定了交叉轴的方向。

  • nowrap:默认值,伸缩容器内单行显示。
  • wrap:伸缩容易内多行显示。由上到下排列
  • wrap-reverse:伸缩容器内多行反向显示,反向指的是从下到上排列。

下面是flexDirection为row的例子。


未标题-1.jpg

下面是flexDirection为column的例子。


未标题-1.jpg

justifyContent:这个属性定义了伸缩项目在主轴上的对齐方式。

  • flex-start:伸缩项目以主轴的起始位置开始对齐,后面的每个元素紧挨着前一个元素对齐。
  • flex-end:伸缩项目以主轴的结束位置对齐,前面的每个元素紧挨着后一个元素对齐。
  • center:伸缩项目互相对齐并在主轴上处于居中,并且第一个元素到主轴起点的距离等于最后一个元素到主轴终点的距离。
  • space-between:伸缩项目平均分配主轴上,第一个元素和主轴的起点紧挨,最后一个元素和主轴的终点紧挨,中间剩下的伸缩项目进行平分。
  • space-around:伸缩项目平均分配在主轴上。第一个元素到主轴的起点距离和最后一个元素到主轴的终点距离相等,且等于中间元素两两的间距的一半,完美地平均分配
未标题-1.jpg

alignItems:这个属性用来定义伸缩项目在交叉轴上的对齐方式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容

  • FlexBox布局整理 Flex基本概念 在flex容器中默认存在两条轴,水平主轴(main axis)和垂直的交...
    niklause_sun阅读 11,761评论 0 13
  • 1、flex布局基本概念 flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活...
    jdit阅读 3,871评论 3 6
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,747评论 1 92
  • RN的布局采用的是Flex,弹性盒模型。 有四个主要属性:flex、flexDirection、justifyCo...
    考特林阅读 10,916评论 2 10
  • react-native尺寸都是无单位的,表示的是与设备像素密度无关的逻辑像素点。这样的话,在不同屏幕尺寸下表现一...
    shanshanfei阅读 305评论 0 0