原文链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/react-native%E5%B8%83%E5%B1%80/

一、宽度和像素密度:

(1)首先你我们需要了解iPhone的各个尺寸:iphone 4s  3.5Screen、iphone 5    4Screen、iphone 6    4.7Screen、iphone 6 Plus 5.5 Screen

这个刚开始的时候对布局规划不是很好,没有考虑到兼容什么的,导致到最后浪费了好些时间(一般初学者都会忽略这些屏幕适配的问题)。

具体:var DimenSions=require('Dimensions');

var windowSize=Dimensions.get('window')

<View style={{width:windowSize.width,height:windowSize.height}}>

<Text>....</Text>

</View>

二、Flex的简单布局

(1)flex布局定义?

flex布局是flexible box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。

(2)适用条件:任何一个容器都可以指定为flex布局(比如你要做一个表格,那么就需要均等分配,这个时候你就可以使用flex布局)。

View style={styles.border1}>  

<View style={{flexDirection:'row',flex1,borderColor:'#e7e7e7',borderWidth:1}}>

<View style={{flex:1, justifyContent:'center', alignItems:'center',borderColor:'#e7e7e7',borderWidth:1}}>

<Text style={styles.color1}>缴费项目</Text>

</View>

<View style={{flex:1, justifyContent:'center',  alignItems:'center',borderColor:'#e7e7e7',borderWidth:1}}>

<Text style={styles.color1}>个人比例</Text>

</View>

<View style={{flex:1, justifyContent:'center', alignItems:'center',borderColor:'#e7e7e7',borderWidth:1}}>

<Text style={styles.color1}>公司比例</Text>

</View>

</View>

(3)flex中子布局与父布局的关系:子布局依赖与父布局

三、水平与垂直居中(alignItems、justifyContent)

<Text style={[styles.text, styles.header]}>

水平居中

</Text>

<View style={{height: 100, backgroundColor: '#333333', alignItems: 'center'}}>

<View style={{backgroundColor: '#fefefe', width: 30, height: 30, borderRadius: 15}}/>

</View>

<Text style={[styles.text, styles.header]}>

垂直居中

</Text>

<View style={{height: 100, backgroundColor: '#333333', justifyContent: 'center'}}>

<View style={{backgroundColor: '#fefefe', width: 30, height: 30, borderRadius: 15}}/>

</View>

<Text style={[styles.text, styles.header]}>

水平垂直居中

</Text>

<View style={{height: 100, backgroundColor: '#333333', alignItems: 'center', justifyContent: 'center'}}>

<View style={{backgroundColor: '#fefefe', width: 30, height: 30, borderRadius: 15}}/>

</View>

四、图片布局:

图片布局有一个stretchMode.通过Image.resizeMode进行访问

var keys=Objec.keys(Image.resizeMode).join('');

使用图片资源的两种方式

(1)使用本地的资源  <Image source={require('./my-icon.png')}> 但是有人也这样写

<Image source={require(images!my-icon.png)}>两者都可以。

(2)使用网络图片

<Image source={{uri:'图片的链接地址'}}>

可以通过设置图片的Style属性来对图片进行设置

var style=StyleSheet.create({

width:

height:

flex:

})

五、padding和margin

padding的语法结构:padding:10 , paddingLeft,paddingTop

margin的语法跟Padding一样;marginLeft:10,marginRight:10,marginTop

我们很多时候都在纠结于到底是用margin还是Padding,这两者之间有有什么区别:

1.padding 是属性定义的元素边框与元素之间的控件(指的是内边距)

2.margin指的是外边距

example:

(1)分别在文本上设置margin:10和padding:10:

<View style={styles.container}>

<View style={{width:100,height:200,borderColor:'black',borderWidth:1}}>

<Text style={{padding:10,borderColor:'red',borderWidth:1}}>设置Padding:10 </Text>

</View>

<View style={{width:100,height:200,borderColor:'black',borderWidth:1}}>

<Text style={{margin:10,borderColor:'red',borderWidth:1}}>设置margin:10 </Text>

</View>

</View>

(2)分别在View上设置margin:10和padding:10

<View style={styles.container}>

<View style={{padding:10,width:100,height:200,borderColor:'black',borderWidth:1}}>

<Text style={{borderColor:'red',borderWidth:1}}>设置Padding:10 </Text>

</View>

<View style={{margin:10,width:100,height:200,borderColor:'black',borderWidth:1}}>

<Text style={{borderColor:'red',borderWidth:1}}>设置margin:10 </Text>

</View>

</View>

react-native布局篇的更多相关文章

  1. 从web移动端布局到react native布局

    在web移动端通常会有这样的需求,实现上中下三栏布局(上下导航栏位置固定,中间部分内容超出可滚动),如下图所示: 实现方法如下: HTML结构: <div class='container'&g ...

  2. react native 布局注意点

    一.react native中很多是ES6语法. 1行.表示是js的严格模式. 'use strict';严格模式中变量必须先声明,然后赋值.定义等:还有就是this的绑定. 2行到8行.导入依赖,可 ...

  3. React Native布局

    一款好的APP离不了一个漂亮的布局,本文章将向大家分享React Native中的布局方式FlexBox. 在React Native中布局采用的是FleBox(弹性框)进行布局. FlexBox提供 ...

  4. React Native 入门篇

    React Native 英文官网:https://facebook.github.io/react-native/ React Native 中文官网:http://reactnative.cn/ ...

  5. React Native布局实践:开发京东client首页(三)——轮播图的实现

    上篇文章中,我们一起构建了京东client的TabBar.在本文中.将继续向大家介绍京东client首页轮播图及其下发功能button的开发方法,如今就让我们開始吧! 1.相关控件调研 眼下在Gith ...

  6. React Native布局详解

    Flexbox 布局 Flex有两个属性:Container  和 Item flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性.采用fle ...

  7. React Native初探

    前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...

  8. React Native指南汇集了各类react-native学习资源、开源App和组件

    来自:https://github.com/ele828/react-native-guide React Native指南汇集了各类react-native学习资源.开源App和组件 React-N ...

  9. react native学习资料

    一:基础学习: react-native中文文档(react native中文网,人工翻译,官网完全同步)http://react-native.cn/docs/getting-started.htm ...

  10. React Native资料汇总

    React Native 官方文档中文版翻译 http://wiki.jikexueyuan.com/project/react-native/homepage.html REACT NATIVE开发 ...

随机推荐

  1. 004_i686和x86_64的区别

    找回TCL隐藏分区(转载) 用Wubi安装 Ubuntu 出现(Initranfs)问题的解决方案 i686和x86_64的区别 2009-04-11 08:19:31|  分类: 电脑问题 |  标 ...

  2. js闭包之应用场景

    闭包的解释 当函数可以记住并访问所在的词法作用域,即使函数是在当前词法作用域之外执行,这时就产生了闭包 在javascript中,只有函数内部的子函数才能读取局部变量,所以说,闭包可以简单理解成“定义 ...

  3. UVA101 【The Blocks Problem】

    一个大模拟!!! 总的来说就是碰到move就要把a上面的全部放回原处. 如果碰到onto就要把b上面的全部放到原处. 因为move是只移动a一个,所以a上面的要归位,而pile是移一堆,所以不用. o ...

  4. P2163 【[SHOI2007]园丁的烦恼】

    其实是不用把一个询问拆成四个的 把询问转化为数学语言: 对于每个查询,询问满足$a<=x<=b$且$c<=y<=d$的点$x,y$的个数 ~~自然~~想到偏序问题,看到有两个式 ...

  5. Java String str = new String(value)和String str = value区别

    示例代码: public class StringDemo2 { public static void main(String[] args) { String s1 = new String(&qu ...

  6. 通过Headless模式执行selenium脚本

    我们在通过Selenium运行自动化测试时,必须要启动浏览器,浏览器的启动与关闭必然会影响执行效率,而且还会干扰你做其它事情(本机运行的话) Chrome Headless模式 Python Sele ...

  7. python 全栈开发,Day112(内容回顾,单例模式,路由系统,stark组件)

    一.内容回顾 类可否作为字典的key 初级 举例: class Foo(object): pass _registry = { Foo:123 } print(_registry) 执行输出: {&l ...

  8. jsp统计页面访问量和刷访问量的简单使用

    ~Jsp可以进行简单的页面访问量统计,当然也可以使用Jsp刷访问量. 1:第一种使用全局变量<%! int i=0;%>进行页面的访问量统计,只有新打开一个浏览器才可以进行统计. 2:第二 ...

  9. [转] Sublime Text3 配置 NodeJs 环境

    前言 大家都知道,Sublime Text 安装插件一般从 Package Control 中直接安装即可,当我安装 node js 插件时候,直接通过Package Control 安装,虽然插件安 ...

  10. 最小生成树<lct>

    题解: lct动态维护最小生成树 每次加边时若这两个之间不连通,那么直接连接 如果这两个点联通,那么就找到这条边上的最大值 如果这个大于当前边,就替换掉 但是需要注意的是lct只能维护点,不能维护边 ...