【精讲】React Native混合开发中的Flexbox布局

鸥仔

今天继续给大家来更新刚哥分享的干货,希望小伙伴们认真的学习。

告诉大家一个好消息,刚哥8月份在蓝鸥的微信平台投稿量非常大,也受鸥宝宝们喜欢。所以,刚哥荣获了最受欢迎奖,我们一起为刚哥喝彩!!!

鸥仔希望大家积极投稿,期待9月我也可以送给你礼物,投稿邮箱:[email protected]

一、 摘要

1

今天来介绍一下React Native中的布局,在React Native混合开发中采用的布局主要是Flexbox,没有接触过HTML5,对这些布局可能非常陌生.

今天给大家总结一下,首先我们还是来看看它的弹性布局概述.

二 、基本原理

2

CSS Flexible Box模块中定义的弹性盒布局技术,可以根据屏幕尺寸或浏览器窗口尺寸自动调整页面中各局部区域的显示方式,

即实现非常灵活的布局处理。

我们来看一下别人画的一个原理图

【精讲】React Native混合开发中的Flexbox布局_第1张图片

容器上有 主轴和纵轴的概念,默认主轴(main-axis)是横向,从左到右,纵轴是竖向,从上到下。其中所有的孩子的布局都会受到这两个轴的影响。后面会讲到,有很多相关的css属性就是通过改变主轴和纵轴的方向来实现不同的布局效果的。

弹性盒布局的指定方法为:对需要布局的元素的容器元素使用display:flex;样式属性。

该容器元素中的每一个元素均被称为“Flex item”,将该容器元素称为“Flex container”。

可以通过flex-direction样式属性的使用来控制容器中所有子元素的排列方向,可指定值如下所示。

row:横向排列(默认值) row-reverse:横向反向排列 column:纵向排列 column-reverse:纵向反向排列

React Native中的Flexbox的工作原理和web上的CSS基本一致,当然也存在少许差异。首先是默认值不同:flexDirection的默认值是column而不是row,alignItems的默认值是stretch而不是flex-start,以及flex只能指定一个数字值。

下面我们来看看 各自布局的特点.

三、 Flex Direction

3

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

【精讲】React Native混合开发中的Flexbox布局_第2张图片
【精讲】React Native混合开发中的Flexbox布局_第3张图片

效果图

【精讲】React Native混合开发中的Flexbox布局_第4张图片

四 、Justify Content

4

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

【精讲】React Native混合开发中的Flexbox布局_第5张图片
【精讲】React Native混合开发中的Flexbox布局_第6张图片

效果展示

【精讲】React Native混合开发中的Flexbox布局_第7张图片

五、 Align Items

5

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

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

框架导入

【精讲】React Native混合开发中的Flexbox布局_第8张图片

定义shopApp类

【精讲】React Native混合开发中的Flexbox布局_第9张图片

样式列表

【精讲】React Native混合开发中的Flexbox布局_第10张图片

注册

运行效果

【精讲】React Native混合开发中的Flexbox布局_第11张图片

更多精彩内容请关注微博@蓝鸥教育 ,微信【蓝鸥】。

THE END.

文/蓝鸥新闻稿  发布/蓝鸥仔仔

蓝鸥仔仔,一个每天拿着5毛钱工资到处嗨的人。

长期寻找好的文,结交好的人,幻想着成为一个伯乐,把好的文给大家一起看,一起成长。

很高兴认识你,喜欢请关注一个。这样,在找文的时候就更有动力了。

PS:你有文,不介意的话给我投稿吧,最最喜欢好文了,期待你的投稿。

你可能感兴趣的:(【精讲】React Native混合开发中的Flexbox布局)