技术标签: native React Native
FlexBox(弹性盒子布局),它是为了简单快速地完成各种伸缩性的设计而提出来的。它可以为传统的盒子模型布局带来更大的灵活性。目前主流的浏览器都已经支持它了。
flexbox布局由伸缩容器和伸缩项目组成。任何一个元素都可以指定为flexbox布局,只要设置display的属性为flex或inline-flex即可。伸缩容器的子元素就成为伸缩项目,伸缩项目使用伸缩布局模型来排版。
默认情况下,伸缩容器由两根轴(主轴:main axis;交叉轴:cross axis)组成。
名称 | 英文 |
---|---|
主轴 | Main Axis |
交叉轴 | Cross Axis |
主轴开始位置 | Main Start |
主轴结束位置 | Main End |
交叉轴开始位置 | Cross Start |
交叉轴结束位置 | Cross End |
定义伸缩容器
display : `-moz-box` | `-webkit-box` | `-ms-flexbox` | ` -webkit-flex` | `flex`
水平轴(主轴)对齐方式
-moz-box-pack : flex-start
| flex-end
| center
| space-between
| space-ground
;
-webkit-box-pack : flex-start
| flex-end
| center
| space-between
| space-ground
;
-ms-flex-pack : flex-start
| flex-end
| center
| space-between
| space-ground
;
-webkit-justify-content : flex-start
| flex-end
| center
| space-between
| space-ground
;
justify-content : flex-start
| flex-end
| center
| space-between
| space-ground
;
垂直轴(交叉轴)对齐方式
-moz-box-align: flex-start
| flex-end
| center
| space-between
| baseline
| stretch
;
-webkit-box-align: flex-start
| flex-end
| center
| space-between
| baseline
| stretch
;
-ms-flex-align: flex-start
| flex-end
| center
| space-between
| baseline
| stretch
;
-webkit-align-items: flex-start
| flex-end
| center
| space-between
| baseline
| stretch
;
align-items: flex-start
| flex-end
| center
| space-between
| baseline
| stretch
;
主轴的方向
flex-direction : row
| row-reverse
| column
| column-reverse
row
: 从左到右;
row-reverse
: 从右到左;
column
: 从上到下;
column-reverse
: 从下到上
是否换行
flex-wrap : wrap
| nowrap
| wrap-reverse
伸缩方向和是否换行简写
flex-flow : row
| row-reverse
| column
| column-reverse
| wrap
| nowrap
| wrap-reverse
换行后的对齐方式
align-content: flex-start
| flex-end
| center
| space-between
| space-ground
| stretch
;
项目排序
order : [整数]
默认值为0
项目放大能力(当存在多余空白时占用空白的比例,比例相对于同级项目)
flex-grow : [整数]
默认值为0
项目收缩能力(当项目大小大于容器是,项目的压缩比例,比例相对于同级项目)
flex-shrink : [整数]
默认值为1,若项目的flex-shrink为2,那么在压缩时这个项目就会变成其他项目的二分之一,如果flex-shrink值为0,那么即使在空间不足需要压缩的情况下,该项目的宽度会保持初始大小不变,其他的则会压缩
项目基准值(项目的宽度,会覆盖项目的width)
flex-basis : [整数]px
| auto
默认值为:auto
flex
项目放大能力、收缩能力、基准值的简写
flex : none
| flex-grow flex-shrink flex-basis
默认值为:0 1 auto
项目在交叉轴上的对齐方式
项目在交叉轴上的的对齐方式,会覆盖项目所在容器的交叉轴(崔志洲)对齐方式
align-self : auto
| flex-start
| flex-end
| center
| space-between
| baseline
| stretch
;
alignItems : flex-start
(默认值) | flex-end
| center
| stretch
;
容器交叉轴的对齐方式,没有baseline属性
alignSelf : auto
| flex-start
| flex-end
| center
| stretch
;
项目交叉轴的对齐方式,会覆盖容器的交叉轴对齐方式,没有baseline属性
flex : none
| flex-grow flex-shrink flex-basis
默认值为:0 1 auto
放大能力,收缩能力,基准值的简写
flexDirection : row
| row-reverse
| column
(默认值) | column-reverse
主轴的方向
flexWrap
属性同上
justifyContent
属性同上
基准线 : 项目第一行文字的起始线
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
Image,
TouchableHighlight,
TouchableOpacity
} from 'react-native';
export default class Hello extends Component{
render(){
return (
<View style={[FlexStyle.margginBox]} ref="lab1">
<View style={[FlexStyle.box, FlexStyle.height400, FlexStyle.width400]}>
<View style={[FlexStyle.top, FlexStyle.height50, FlexStyle.bgred]}>
<Text style={FlexStyle.yellow}>top</Text>
</View>
<View style={[FlexStyle.borderBox]}>
<View style={[FlexStyle.left, FlexStyle.bgred]}>
<Text style={FlexStyle.yellow}>left</Text>
</View>
<View style={[FlexStyle.right, FlexStyle.bgred]}>
<Text style={FlexStyle.yellow}>right</Text>
</View>
</View>
<View style={[FlexStyle.bottom, FlexStyle.bgred, FlexStyle.height50]}>
<Text style={FlexStyle.yellow}>bottom</Text>
</View>
<View style={[FlexStyle.label]}>
<Text style={FlexStyle.white}>marggin</Text>
</View>
</View>
</View>
);
}
}
const FlexStyle = StyleSheet.create({
height50 : {
height : 50
},
height400 : {
height : 400
},
width400 : {
width : 400
},
bgred : {
backgroundColor : "#6AC5AC"
},
box : {
flexDirection : "column",
flex : 1,
position : "relative"
},
label : {
top : 0,
left : 0,
paddingTop : 0,
paddingRight : 3,
paddingBottom : 3,
paddingLeft : 0,
position: "absolute",
backgroundColor:"#FDC72F"
},
top :{
justifyContent : "center",
alignItems : "center"
},
bottom : {
justifyContent : "center",
alignItems : "center"
},
right : {
width : 50,
justifyContent:"space-around",
alignItems : "center"
},
left : {
width : 50,
justifyContent:"space-around",
alignItems : "center"
},
yellow : {
color : "#FDC72F",
fontWeight : "900"
},
white:{
color : "white",
fontWeight : "900"
},
margginBox : {
position : "absolute",
top : 100,
paddingRight : 7,
paddingLeft: 7,
},
borderBox : {
flex:1,
justifyContent : "space-between",
flexDirection:"row"
}
});
AppRegistry.registerComponent('Hello', () => Hello);
文章浏览阅读618次。写在前面这是我之前在知乎上“学习Unity3D有什么比较好的资料嘛?”问题的回复,我把它也搬运到博客上来,同时对排版和内容做了一点小小的修改。学习书籍入门 《Unity3D游戏开发》(宣雨松) 书中介绍了Unity的各个面板,对常用功能都举了例子,书的最后内容是综合前面知识,制作一个简易的游戏。因为是在2012年出版的书,和现在Unity最新版本肯定有不一样的地方,但对新手来说仍是个不错的_unity的相关资料知识
文章浏览阅读274次。Joel Spolsky曾经感叹:招聘难,难于上青天(此处笔者稍加演绎:))。他有两个辛辣但不乏洞察力的断言:真正的牛人也许一辈子就投大概4次简历,这些家伙一毕业就被好公司抢走了,并且他们的雇主会给他们不赖的待遇,所以他们也不想挪窝。(刚刚去世的Dennis Ritchie就是这样一个人)而“人才”市场上能找到的大多都不是什么人才。招到这帮人轻则费钱重则把你公司搞挂。(当我把这篇文章给
文章浏览阅读2.8w次。使用jdbc链接DB2时报SQLCODE204,SQLSTATE42704错误,如图所示:解决办法为表名添加用户名:String sql = "select * from WHJZ.PERSON";(WHJZ为用户名)_translating sqlexception with sql state '42704
文章浏览阅读185次。最近很多同学都在问jmeter上传,下载文件的脚本怎么做?正巧这阵子忙完有时间,就来“折腾”一番,哈哈现整理出来和大家分享到底该怎么做?一、准备工作:上传接口一个(自行开发解决了)下载接口ps:没有困难创造困难也要上jmeter4.0版本上传接口源码/*** 文件上传*/@RequestMapping(value ="/fileUpload", method =..._bat 判断文件名包含
文章浏览阅读117次。最近研究了一下haxe,发现蛮牛逼的,转几篇知识帖haXe开发笔记:中文问题的小结* .hx源文件中如果包含中文,要保存成UTF-8编码才能够正确被haXe编译器解析,是否包含BOM(Byte Order Marker, 在UTF-8文件中,为EF BB BF三个字节的固定值)无所谓。* 采用Assets.getText()是可以正确载入包含中文的文本文件的,前提是文本..._编程nme
文章浏览阅读10w+次,点赞27次,收藏133次。1.文件结构:2.pom:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://mave..._spring boot多数据源
文章浏览阅读219次。10﹑开发聊天页面2_发送文本字符串聊天数据功能 _网页聊天字符串测试
文章浏览阅读364次。在Android开发过程中,有时候会要求Activity之间切换能够有动画效果。这时候我们一般在StartActivity(intent)之后使用overridePendingTransition (int enterAnim, int exitAnim)。第一个参数enterAnim表示新Activity进入时的动画。第二个参数exitAnim表示原先旧的Activity退出时的动画_安卓代码动画从中间向两侧展开
文章浏览阅读1.5k次。当要求质量内建、测试左移、持续集成、DevOps,代码的增量覆盖率几乎是必定会被提出来的话题。这个方案明确了"谁的代码谁负责"的原则,和当年“小岗村包产到户”一样,开发人员只需要为自己的提交/合并请求来提供代码覆盖率数据,而不再需要为整个团队的代码库和历史旧账掉头发了。团队负责人也乐于实施这样的“最佳实践”,树立一个带电的“质量门禁”,没有达标的,一律拒绝签入或者合并。但是一直以来,关于..._sonar qube coverage
文章浏览阅读7.7k次。事务使用不当的坑,踩过不止一个两个了,只是,柳暗花明又一坑~某个项目用的mysql数据库和druid连接池,在测试环境经常报connection disable,如下: 相信大部分人能一眼看出,这是由于数据库主动断开了某个连接,而程序还在继续使用该connection。由报错信息可知,mysql服务器的wait_timeout只有60s,简直离谱!正常来说其默认的超时时间应为8小时。如报错建议,第一反应是调整mysql超时时间,但是该数据库属于其他开发商,无法修改超时配置..._connection disabled
文章浏览阅读1.3w次,点赞9次,收藏41次。找到这篇文章的你一定是看了SLAM14讲第五章来的,我解决这个问题大概用了三天。。(小声bb:第五章根本用不上这个h文件,你注释掉就行)主流装PCL大概我总结了一下。可以看一下这里。出现这个bug有两种可能。1 .依赖缺少,在编译和安装时没有在urs/include/plcX.X目录下生成pcl_visualizer.h。先去这个目录下看一下是否是这种情况,如果没生成,请按照这..._fatal error: pcl/visualization/pcl_visualizer.h: no such file or directory
文章浏览阅读7.2k次。dispatch_group_t group = dispatch_group_create();MyCoreDataObject *coreDataObject;dispatch_group_enter(group);AFHTTPRequestOperation *operation1 = [[AFHTTPRequestOperation alloc] initWithRequest:_dispatch_group_enter dispatch_group_leave dispatch_group_wait