React Native FlexBox布局
来源:互联网 发布:d3.js 关系图 圆形 编辑:程序博客网 时间:2024/06/12 00:51
这段时间熟悉了一下ReactNative,里面的布局感觉很有意思,跟我以前接触的布局思想有很大不同,所以就自己测试了一些FlexBox的属性,一下是效果图:
RN的布局主要依赖于FlexBox系统,它有如下几个主要属性:
flex 视图的比重,这里注意了:In React Native flex
does not work the same way that it does in CSS
flexDirection 子视图在容器中排布的方向,这是用来确定主轴的 flexDirection controls which directions children of a Container Go
justifyContent 子视图在主轴的排列方式 justifyContent aligns children in the main direction
alignItems 子视图在主轴的交叉轴(次轴)排列方式 alignItems aligns children in the cross direction
alignSelf 子视图在次轴的排列方式,主要是用来重写父视图的alignItems
alignSelf controls how a child aligns in the cross direction, overriding the alignItems of the parent.
position 布局方式,默认是相对布局relative
flexWrap 是否包裹 ,默认值是nowrap
接下来看代码实现:
首先我们也仿照官方的列子写个Circle类来描述作为子视图的球
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
其次我们再写个CircleBlock类作为容器,其实就是小球的父视图:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
先看看flexDirection这个属性有哪些值:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
以下几个属性的实际效果:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
justifyContent作为子视图在主轴的排列方式有这些值:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
看代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
至于效果,是这样的
alignItems是子视图在主轴交叉轴的排列方式,有这些值
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
alignSelf做为对alignItems的重写,值与alignItems一样
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
flexWrap包裹
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
下面是代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
position当子视图需要在父视图里面精准定位是需要将子视图的position设置为absoulute
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
而且是这里面的绝对布局可以理解是对容器剩余空间的布局,要注意区分这段代码的实现和效果:
实现
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
效果:
- React Native-FlexBox布局
- React Native Flexbox布局
- React Native FlexBox布局
- React Native FlexBox布局
- React Native FlexBox布局
- React Native中的flexbox布局
- React Native 之 flexbox布局
- React-Native之flexbox布局
- (一)React Native---FlexBox 布局
- React Native 弹性布局FlexBox
- React Native布局之FlexBox
- React Native 之 Flexbox 布局
- React Native之Flexbox布局
- react-native 使用Flexbox布局
- 2、React Native中的flexbox布局
- React-Native之flexbox布局篇
- react native 学习笔记----使用Flexbox布局
- React Native中position、flexbox布局
- sizeof与strlen的区别
- 介质访问控制
- 2016年寒假学习日记
- 数字
- 多文档类型、视图和框架窗口
- React Native FlexBox布局
- JavaScript 模块的循环加载
- 动态规划总结(01背包 完全背包 多重背包)
- Java编程题练习2017-02-20
- java时间的转换以及时间的比较
- FZU1894-志愿者选拔
- 性能测试7-性能调优
- 图的基本存储的基本方式一
- 中国的创新经济—学习笔记1