【RN - 基础】之FlexBox弹性布局
前言
弹性盒模型(The Flexible Box Module),又叫FlexBox,意为“弹性布局”,旨在通过弹性的方式来对齐和分布容器中内容的空间,使其能适应不同的屏幕,为盒装模型提供最大的灵活性。
FlexBox在大部分情况下都是处理Item在Container中位置和尺寸的关系。
FlexBox在布局中能解决很多问题,如浮动布局、屏幕适配、水平垂直居中、自动分配宽度等。
FlexBox布局属性
flexDirection主轴方向:
flexDirection属性用来设置主轴的方向,即视图中子控件的排列顺序,有如下几种选项:
- column(默认值):子控件从上向下排列;
- column-reverse:子控件从下向上排列;
- row:子控件从左向右排列;
- row-reverse:子控件从右向左排列。
justifyContent对齐方式:
justifyContent属性用来设置伸缩项在主轴线的对齐方式,有如下几种选项:
- flex-start(默认值):向主轴方向的起始端靠齐;
- flex-end:向主轴方向的结尾端靠齐;
- center:向主轴中间靠齐;
- space-between:两段靠齐,项之间间隔相等,主轴两段没有空隙;
- space-around:项平均的分布在主轴上,每个项的两段都有空隙。
alignItems侧轴对齐方式:
alignItems属性用来设置伸缩项在侧轴上的对齐方式(侧轴永远垂直于主轴),有如下几种选项:
- stretch(默认值):如果没有设置项的高度或设置为auto,则项将占满侧轴;
- flex-start:向侧轴方向的起始端靠齐;
- flex-end:向侧轴方向的末尾端靠齐;
- center:向侧轴的中间靠齐。
flexWrap流式布局样式:
flexWrap属性用来设置流式布局(当所有项不能显示在一行中时,换行显示)的样式,有如下几种选项:
- nowrap(默认值):不换行;
- wrap:换行,新行在旧行下方;
- wrap-reverse:换行,新行在旧行上方。
注意:flexWrap属性在iOS上可以正常设置,但在Android上如果不加额外的设置,则只会显示第一行,解决方法是添加style:alignItems: ’flex-start’
FlexBox元素属性
flex元素比重:
flex属性是flex-grow、flex-shrink和flex-basis三个属性的组合体,其中后两个属性是可选属性。三个属性具体解释如下:
- flex-grow:元素占当前容器中的弹性宽度的比重,默认是0;
- flex-shrink:缩小元素的宽度,值越大缩的越小,默认值是1;
- flex-bisis:相当于CSS中的width属性,默认值是auto。
元素在容器中的宽度/高度的计算公式:宽/高度 = 弹性宽度 * (flow-grow / sum(flow-grow));
alignSelf:
alignSelf属性允许单个元素有与其他元素不一样的对齐方式,有如下几种选项:
- auto(默认值):集成父容器的对齐方式,如果没有父容器,则相当于stretch;
- flex-start:当前元素向父容器的起始端靠齐;
- flex-end:当前元素向父容器的结尾端靠齐;
- center:当前元素向父容器的中间靠齐;
- stretch:当前元素拉伸铺满父容器。
注意:alignSelf属性相当于将父容器的alignItems属性进行了覆盖。
FlexBox其他方法
获取当前屏幕的宽度(高度、分辨率使用同样方法获取):
let Dimensions = require('Dimensions');
let width = Dimensions.get('window').width;
获取当前屏幕的宽度、高度、分辨率:
let Dimensions = require('Dimensions');
let {width, height, scale} = Dimensions.get('window');
补充参考
【RN - 基础】之FlexBox弹性布局的更多相关文章
- CSS3中的Flexbox弹性布局(一)
CSS3引入了一种新的布局模式——Flexbox布局,即伸缩布局盒模型(Flexible Box),用来提供一个更加有效的方式制定.调整和分布一个容器里项目布局,即使它们的大小是未知或者动态的,这里简 ...
- css3 FlexBox 弹性布局
Flex 弹性布局 这个是css3中新添加的内容,现在已经支持所有的浏览器,利用Flex布局,可以简便.完整.响应式地实现各种页面布局. 注意:在设置 flex 后,子元素的flaot ,clear, ...
- java基础之Flex弹性布局、JSP错误处理以及Log4J
一.Flex弹性布局 1.产生的比较晚,目前在移动网页开发中可以使用,而且逐渐成为主流. 在桌面网页开发中使用的比较少(主要是桌面浏览器的兼容性问题更加严重) 2.开启方法: 在容器标签上加上 dis ...
- CSS3中的Flexbox弹性布局(二)
flexbox详解 flexbox的出现是为了解决复杂的web布局,因为这种布局方式很灵活.容器的子元素可以任意方向进行排列.此属性目前处于非正式标准. flex布局模型不同于块和内联模型布局,块和内 ...
- Flexbox弹性布局
Flexbox,一种CSS3的布局模式,也叫做弹性盒子模型,用来为盒装模型提供最大的灵活性.最新版本兼容IE11+.firefox.safari.chrome.opera及移动端,但移动端ios7.1 ...
- css flexbox 弹性布局
flexbox 即css flexible box layout. ie9及以下不支持flexbox. flex详细规范(https://www.w3.org/TR/css-flexbox/) 为什么 ...
- Flexbox弹性布局,更优雅的布局
Flexbox,更优雅的布局 Flex 布局教程:语法篇 Flex 布局教程:实例篇 2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得 ...
- CSS3 flexbox弹性布局实例
常用例子 1.居中对齐 <!DOCTYPE html> <head> <meta charset="utf-8"> <style type ...
- React Native 弹性布局FlexBox
React Native采用一中全新的布局方式:FlexBox(弹性布局).可以很方便的实现各种复杂布局,是全新的针对web和移动开发布局的一种实现方式. 何为FlexBox? 完整名称为:the f ...
随机推荐
- 【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!
目录 1.异常 1.1 异常概念 1.2 异常体系 1.3 异常分类 1.4 异常的产生过程解析 2. 异常的处理 2.1 抛出异常throw 2.2 Objects非空判断 2.3 声明异常thro ...
- 基本的sql 语句
1,登陆数据库:mysql -u root -p2,退出数据库:exit quit ctr+d3,创建数据库:create database 数据库名 charset=utf84,使用数据库:use ...
- 构造函数语义学——Copy Constructor 的构造操作
前言 在三种情况下,会以一个 object 的内容作为另一个 class object 的初值: object明确初始化 class X{...}; X x; X xx = x; object 被当作 ...
- 【Auto.js images.matchTemplate() 函数的特点】
Auto.js images.matchTemplate() 函数的特点 官方文档:https://hyb1996.github.io/AutoJs-Docs/#/images?id=imagesm ...
- 从函数计算架构看 Serverless 的演进与思考
作者 | 杨皓然 阿里巴巴高级技术专家 导读:云计算之所以能够成为 DT 时代颠覆性力量,是因为其本质是打破传统架构模式.降低成本并简化体系结构,用全新的思维更好的满足了用户需求.而无服务器计算(S ...
- beanFactory 设计模式 Bean 生命周期的胡言乱语,哈哈
写在前面的话 适用读者:有一定经验的,本文不适合初学者,因为可能不能理解我在说什么 文章思路:不会一开始就像别的博客文章那样,Bean 的生命周期,源码解读(给你贴一大堆的源码).个人觉得应该由问题驱 ...
- 查找一个卷对应的osd
1.首先找到卷的id: 2.使用rados命令找到卷上面的对象数据: 3.通过ceph osd map命令可以查询到对象对应的pgid及pg对应的osd:
- FastJson稍微使用不当就会导致StackOverflow
GitHub 9.4k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 9.4k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 9.4k Star 的 ...
- Java中打印日志,这4点很重要!
目录 一.预先判断日志级别 二.避免无效日志打印 三.区别对待错误日志 四.保证记录完整内容 打印日志,要注意下面4点. 一.预先判断日志级别 对DEBUG.INFO级别的日志,必须使用条件输出或者使 ...
- php查询字符串的函数
/* 查找一个字符串在另一个字符串的第一次出现,并返回其余部分(strstr别名) */ var_dump(strchr("hello world hello", "wo ...