React Native 学习笔记七(关于布局的使用)
2016-09-13 16:21
561 查看
在React Native中使用flexbox(弹性盒子)来设置子组件的布局。Flexbox可以在不同屏幕尺寸上提供一致的布局结构(从而实现屏幕的适配 就像android中的比重适配一样)。
一般来说,使用
flexDirection(排列方向)、
alignItems(子元素沿着次轴(与主轴垂直的轴,比如若主轴方向为row,则次轴方向为column)的排列方式),
justifyContent(子元素沿着主轴的排列方式。子元素是应该靠近主轴的起始端还是末尾段分布呢?亦或应该均匀分布?对应 的这些可选项有:flex-start、center、flex- end、space-around以及space-between)
三个样式属性就已经能满足大多数布局需求。
对于弹性盒子的使用和web的css基本一样 也有些许的差异
差异:默认值不同:flexDirection的默认值是column而不是row,alignItems的默认值是stretch而不是flex-start,以及flex只能指定一个数字值。
1.flexDirection(排列方向)
在原有代码的基础上 设置显示方向为水平方向
2. alignItems(子元素沿着次轴)
换句话说 就是自定义的组建 在与设置方向相反的方向上的位置分布 比如这里设置的是水平方向排列 那么 设置alignItems就是设置在竖直方向上的位置 位于布局的中间 上下留白一样
stretch:拉长 占满空间 没有留白
3.justifyContent(子元素沿着主轴的排列方式)
在水平方向上的排布
flex-start:相当于left
flex-end:相当于 right
space-around:均匀分布(每块留白都是一样的)
space-between:均匀分布(左右两边不留白)
其他布局:
center:根据子组件的大小 控制父组件的大小(没有设置具体大小) 显示位置为主轴方向居中(flex-start flex-end 一样)
auto 占满空间父组件的大小(没有设置具体大小)
。。。。
还有很多可用的属性 参照 布局属性更多
一般来说,使用
flexDirection(排列方向)、
alignItems(子元素沿着次轴(与主轴垂直的轴,比如若主轴方向为row,则次轴方向为column)的排列方式),
justifyContent(子元素沿着主轴的排列方式。子元素是应该靠近主轴的起始端还是末尾段分布呢?亦或应该均匀分布?对应 的这些可选项有:flex-start、center、flex- end、space-around以及space-between)
三个样式属性就已经能满足大多数布局需求。
对于弹性盒子的使用和web的css基本一样 也有些许的差异
差异:默认值不同:flexDirection的默认值是column而不是row,alignItems的默认值是stretch而不是flex-start,以及flex只能指定一个数字值。
1.flexDirection(排列方向)
在原有代码的基础上 设置显示方向为水平方向
class helloReact1 extends Component { //渲染 render() { return ( //设置显示风格 自定义View 显示结果为Hellohello HelloWorld 每个return下面 只能有一个直属的View <View style={{backgroundColor:'yellow',flexDirection:'row'}}> <Blank text='I want you'/> <Blank text='I want you1111'/> <Blank text='I want you2222'/> </View> ); } }
2. alignItems(子元素沿着次轴)
class helloReact1 extends Component { //渲染 render() { return ( //设置显示风格 自定义View 显示结果为Hellohello HelloWorld 每个return下面 只能有一个直属的View <View style={{height:500,backgroundColor:'yellow',flexDirection:'row',alignItems:'center'}}> <Blank text='I want you'/> <Blank text='I want you1111'/> <Blank text='I want you2222'/> </View> ); } }
换句话说 就是自定义的组建 在与设置方向相反的方向上的位置分布 比如这里设置的是水平方向排列 那么 设置alignItems就是设置在竖直方向上的位置 位于布局的中间 上下留白一样
stretch:拉长 占满空间 没有留白
3.justifyContent(子元素沿着主轴的排列方式)
class helloReact1 extends Component { //渲染 render() { return ( //设置显示风格 自定义View 显示结果为Hellohello HelloWorld 每个return下面 只能有一个直属的View <View style={{backgroundColor:'yellow',flexDirection:'row',justifyContent:'center'}}> <Blank text='I want you'/> <Blank text='I want you1111'/> <Blank text='I want you2222'/> </View> ); } }
在水平方向上的排布
flex-start:相当于left
flex-end:相当于 right
space-around:均匀分布(每块留白都是一样的)
space-between:均匀分布(左右两边不留白)
其他布局:
alignSelf 根据自己设置占据空间的大小
center:根据子组件的大小 控制父组件的大小(没有设置具体大小) 显示位置为主轴方向居中(flex-start flex-end 一样)auto 占满空间父组件的大小(没有设置具体大小)
borderBottomWidth borderBottomColor 设置边框的宽度和颜色
borderBottomWidth:20,borderBottomColor:'pink'
。。。。
还有很多可用的属性 参照 布局属性更多
相关文章推荐
- React Native 学习笔记三(关于prop属性的使用和复用)
- ASP.NET学习笔记[2] - 关于使用Master.Page的几点注意事项
- Spring学习笔记 关于FactoryBean接口的使用
- 关于HierarchyViewer的使用,学习别人优秀布局
- MFC关于CBimtap类的使用和创建位图数组的问题【学习笔记】
- JS学习笔记(一):关于{}和[]的使用
- CSS学习笔记:使用绝对定位实现横向两列布局
- MonoRail学习笔记十二:layout布局的使用
- openGL学习笔记四 : 关于颜色, 大小, 虚线, 多边形反转, 镂空, 使用位图
- C#学习笔记-WPF前端布局和控件的使用
- QT学习笔记----布局管理器的使用
- MonoRail学习笔记十二:layout布局的使用
- QT学习笔记----布局管理器的使用
- C++学习笔记(六):关于ifdef 和ifndef的使用
- MonoRail学习笔记十二:layout布局的使用
- Flex学习笔记_04 使用容器控制界面布局
- SilverLight学习笔记--关于使用IValueConvert对绑定数据的格式化操作
- Spring学习笔记 关于Bean定义的重用-使用abstract以及parent标签属性
- Android(java)学习笔记94:关于广播接收者的注册和使用心得
- Java学习笔记(二)——关于使用基础类的技巧