微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

React Native 之布局篇

一.Flex布局

什么是Flex布局?布局的传统解决方案,是基于盒子模型,依赖display属性+position属性+float属性,这种布局方式对于特殊布局非常不方便,

比如,垂直居中就不好实现.2009年,W3c提出的Flex布局,即弹性布局,用来为盒子模型提供最大的灵活性,任何一个容器都可以指定为Flex布局.

1.容器的属性(6个)

ReatNative的flex布局和web的略有不同,下面的这些属性在RN中不用写中间”-“,并且第二个单词 首字母大写

flex-direction:子项目的在主轴的排列方式

  row (认值):主轴为水平方向,起点在左端

  row-reverse:主轴为水平方向,起点在右端(RN似乎不支持)

  column:主轴为垂直方向,起点在上沿

  column-reverse:主轴为垂直方向,起点在下沿(RN也不支持)

  flex-wrap:认,项目都排在一条线上(又称”轴线”)上

  Nowrap 不换行 (认)| wrap换行 | wrap-reverse 换行,第一行在下方

  RN似乎也不支持

  flex-flow:属性是flex-direction和flex-wrap的简写形式,认是row Nowrap,RN没试过

  justify-content:定义项目在主轴上的对齐方式

  flex-start(认值) 左对齐 | flex-end (右对齐) | center(居中) | space-between (两端对齐,项目之间间

  隔相等) | space-around (每个项目两侧的间隔相等,所以项目之间的间隔比项目与边框的间隔大一倍)

  align-items:定义项目在交叉轴上如何对齐

  flex-start (交叉轴的起点) | flex-end (终点) | center(中点对齐) | baseline(项目的第一行文字的基线对齐) | stretch (认值)如果项目

  未设置高度 或者设为auto,将占满整个容器

  align-content:定义了多根轴线的对齐方式,如果项目只有一根轴线,该属性不起作用

  flex-start | flex-end | center | space-between | space-around

    
3.项目的属性(6个)

  order:定义项目的排列顺序,数值越小,排列越靠前,认为0

  flex-grow:定义项目的放大比例,认为0,即如果存在剩余空间也不放大,如果都为1,则他们将等分剩余空间.如果一个为2,其他为1,则前

  者占据的剩余空间比其他多一倍

  flex-shrink:定义项目的缩小比例,认为1,即如果空间不足,项目将缩小.如果都为1,等比缩小,如果一个为0,则前者不缩小,负值

  无效

  flex-basis:定义在分配多余空间之前,项目占据的主轴空间,浏览器将根据这个属性,计算主轴是否有多余空间,它的认值为auto,即项目

  本来大小,也可以设置固定空间,即width和height

  flex:是flex-grow,flex-shrink,flex-basis的简写,认为0 1 auto,后两个属性可选,该属性有快捷值,auto (1 1 auto) 和none (0 0 auto)

  align-self:允许单个项目与其他项目不一样的对齐方式,可覆盖align-items 属性,认值为auto,表示继承父元素的align-items属性,没

  有父元素则等同于stretch

  auto | flex-start | flex-end | center | baseline | stretch

  图片属性:

  resizeMode

  cover:cover会被截断

  strech:stretch模式图片被拉伸适应屏幕

  contain:contain 模式容器完全容纳图片图片自适应宽高

4.绝对定位与相对定位

不用在父容器中设置absolute或者relative,直接是相对于父容器定位

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如果组件之中有复用的代码,需要重新创建一个父类,父类中存储公共代码,返回子类,同时把公用属性...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例如我们的 setState 函数式同步执行的,我们的事件处理直接绑定在了 dom 元素上,这些都跟 re...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom 转为真实 dom 进行挂载。其实函数是组件和类组件也是在这个基础上包裹了一层,一个是调...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使用,可能是不了解。我公司的项目就没有使用,但是在很多三方库中都有使用。本小节我们来学习下如果使用该...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接触 react 就一直使用 mobx 库,上手简单不复杂。
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc 端可以使用分页进行渲染数限制,在移动端可以使用下拉加载更多。但是对于大量的列表渲染,特别像有实时数据...
本小节开始前,我们先答复下一个同学的问题。上一小节发布后,有小伙伴后台来信问到:‘小编你只讲了类组件中怎么使用 ref,那在函数式组件中怎么使用呢?’。确实我们...
上一小节我们了解了固定高度的滚动列表实现,因为是固定高度所以容器总高度和每个元素的 size、offset 很容易得到,这种场景也适合我们常见的大部分场景,例如...
上一小节我们处理了 setState 的批量更新机制,但是我们有两个遗漏点,一个是源码中的 setState 可以传入函数,同时 setState 可以传入第二...
我们知道 react 进行页面渲染或者刷新的时候,会从根节点到子节点全部执行一遍,即使子组件中没有状态的改变,也会执行。这就造成了性能不必要的浪费。之前我们了解...