React Native - 2 控件Flexbox
Posted Junior的个人空间
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Native - 2 控件Flexbox相关的知识,希望对你有一定的参考价值。
*强烈建议使用Genymotion模拟器,比AVD速度快,功能强大。
1. flexDirection
Flexbox是连续布局,它有主轴(primary axis)和交叉轴(cross axis)组成,使用flexDirection属性来确定主轴的方向,它包括水平(row)和垂直(column)两个值,默认是column。
1.1 水平布局
修改自动生成的代码文件,/index.android.js,
![](https://image.cha138.com/20210609/3991f5de7cf5429786e10b41972cbebf.jpg)
styles:
![](https://image.cha138.com/20210609/7abdeb2f4ba740be86a8dbd7e1d5aa1a.jpg)
results:
![](https://image.cha138.com/20210609/6587c2b50f9e42288c2c4972ea7b530f.jpg)
1.2 垂直布局,修改L41,flexDirection:\'column\',
![](https://image.cha138.com/20210609/d98bbfe190cb4cd4bf23fcdadbcca74c.jpg)
2.
justifyContent,设置元素沿主轴的对齐方式,包括5种属性
2.1 flex-start:伸缩项目与父容器左端靠齐
![](https://image.cha138.com/20210609/5912843a51404452b3f95fc8436ade85.jpg)
![](https://image.cha138.com/20210609/5912843a51404452b3f95fc8436ade85.jpg)
2.2 flex-end:与父容器右端靠齐
![](https://image.cha138.com/20210609/5838aaf0fce64a338dbbde0cbfa3e70f.jpg)
2.3 center:水平居中
![](https://image.cha138.com/20210609/238795aefefc4788a883c039a4401cd6.jpg)
2.4 space-between:第一个子组件位于父容器左端,最后一个子组件位于父容器最右端。然后平均分配在父容器水平方向上
![](https://image.cha138.com/20210609/003100088ed74323a35b6ff8ceb26d67.jpg)
2.5 space-around:所有子组件平均分配在父容器的水平方向上,左右都有留空隙
![](https://image.cha138.com/20210609/525abaf31cc147b980b385112aaf8c86.jpg)
3. 用于定义子组件在交叉轴方向上的对齐方式。有四个属性可设置:flex-start,flex-end,center,stretch。
我们需要设置元素的高度,
![](https://image.cha138.com/20210609/9c9dfa54f7ec4e43817a1467271561b8.jpg)
3.1 flex-start:与父组件的顶部对齐
![](https://image.cha138.com/20210609/85f2793f45cc4d2f99e476e41b6c857c.jpg)
3.2 flex-end:与父组件的底部对齐
![](https://image.cha138.com/20210609/cb38130fdcc443e0a2f046edf52eb1ab.jpg)
3.3 center:处于父容器的中间位置
![](https://image.cha138.com/20210609/acacbbd1e1834bc1bac542096270b6ca.jpg)
3.4 stretch:竖直上填充整个容器
![](https://image.cha138.com/20210609/ba4bd0fdf33449d9b7e139dfa980deac.jpg)
4. flex,定义同级别元素的相对大小,它只关心相对值,比如下面的1:2:3,和10:20:30是一样的结果。
修改内容如下,注意,在元素上直接添加样式时,别忘了加“[]”,参见L18和L22。
![](https://image.cha138.com/20210609/b909d8dde73d4417b885e4c53c7222a4.jpg)
运行结果,2的宽度是1的两倍,3的宽度是1的三倍
![](https://image.cha138.com/20210609/f88a67d8ef084efbb32cb7e590b408cf.jpg)
以上是关于React Native - 2 控件Flexbox的主要内容,如果未能解决你的问题,请参考以下文章
React Native开发React Native控件之Touchable*系列组件详解(18)
React Native开发React Native控件之ProgressBarAndroid进度条讲解(12)
ReactNative学习之控件:react-native-elements
React Native开发React Native控件之WebView组件详解以及实例使用(22)