reactnative可以编辑iOS程序也可以编辑Android程序, 而且80%的代码都可以重用. 及有些文件是两个系统通用的, 相信大家也都清楚了.

但是也许大家会遇到一些屏幕布局的问题, 最常遇到的就是Android的状态栏我们是无法涉及的而iOS的就可以. 所以当一个component设置了marginTop时, 两个系统需要设置的数值是不一样的.

我们没必要为了一个style而创建两个文件(***.ios.js和***.android.js)当然这肯定能解决问题, 但是每次都这样做的花, 会很浪费, 而且代码冗余, 也导致重用代码率也低了.

在此跟大家介绍一个很好的解决办法, 只需要建一个style文件即可解决.

1.新建一个js文件(StyleSheet.js)

'use strict';import {StyleSheet, Platform} from 'react-native';export function create(styles: Object): {[name: string]: number} {const platformStyles = {};Object.keys(styles).forEach((name) => {let {ios, android, ...style} = {...styles[name]};if (ios && Platform.OS === 'ios') {style = {...style, ...ios};}if (android && Platform.OS === 'android') {style = {...style, ...android};}platformStyles[name] = style;});return StyleSheet.create(platformStyles);
}

2. 然后在需要分别设置两个系统样式的地方导入该类, 而不需要再从'react-native'里导入了

const StyleSheet = require('./StyleSheet');  //假设在同一文件夹下

然后style就可以这样设置了:

const styles = StyleSheet.create({container:{flex:1,ios: {marginTop:64,},android: {marginTop:44,},}
})

然后程序就会根据系统分别设置两个不同的marginTop了.

转载于:https://www.cnblogs.com/itgezhu/p/11037678.html

ReactNative中iOS和Android的style分开设置教程相关推荐

  1. App测试中ios和Android的区别1

    App测试中ios和Android的区别: 一.多分辨率测试 1.手机常见分辨率: 4:3 VGA     640*480 (Video Graphics Array) QVGA  320*240 ( ...

  2. app测试中ios和Android的区别:

    app测试中ios和Android的区别: 1.Android长按home键呼出应用列表和切换应用,然后右滑则终止应用: 2.多分辨率测试,Android端20多种,ios较少: 3.机操作系统,An ...

  3. 手机APP测试中iOS和Android有何区别?

    目录 前言 一.常识性区别 二.导航方式 三.单条item的操作 四.关于排版 五.实体键 六.动效 前言 今天给大家浅浅的分享一下手机APP测试中iOS和Android有何区别? 一.常识性区别 二 ...

  4. ios和android区别是什么,app测试中ios和Android的区别:

    今天偶然看到一个面试题,安卓和ios的测试区别,一下子只能想到几个基础的点,后面百度了一下,答案简单记录一下. app测试中ios和Android的区别: 1.安卓手机针对每一款手机有不一样的操作:苹 ...

  5. 为什么CAD软件中图块插入时无法分开设置XYZ轴比例?

    在使用浩辰CAD软件绘制图纸的过程中,插入图块时可以设置XYZ轴统一比例,也可以取消勾选"统一比例"分别设置XY轴的比例,但有时候插入图块时 "统一比例"选项是 ...

  6. app测试中ios和Android的区别

    1.Android长按home键呼出应用列表和切换应用,然后右滑则终止应用: 2.多分辨率测试,Android端20多种,ios较少: 3.机操作系统,Android较多,ios较少且不能降级,只能单 ...

  7. win10使计算机进入睡眠状态什么意思,技巧:如何在win10中进入睡眠模式计算机睡眠模式设置教程...

    如何在Win10系统中快速进入睡眠模式?如何设置为自动进入睡眠模式?每个人都熟悉系统睡眠模式.如果计算机掉了东西,您可以将计算机设置为睡眠以节省电量.但是,如果您想进入休眠状态,则通常需要进行繁琐的设 ...

  8. App 测试中 ios 和 Android 有哪些区别

    1.Android长按home键呼出应用列表和切换应用,然后右滑则终止应用: 2.多分辨率测试,Android端20多种,ios较少: 3.手机操作系统,Android较多,ios较少且不能降级,只能 ...

  9. App测试中ios和Android的区别2

    四.push测试: 1.前台运行: 接送到推送后,点击推送消息,是否能跳转到链接 2.后台运行: Android:点击[home]或者返回键,使程序后台运行时,此时接收到push,点击后唤醒应用,此时 ...

  10. win7计算机管理中没有本地用户,帮你win7系统计算机管理中没有本地用户和组的设置教程...

    我们在使用电脑工作的时候,不可避免会遇到一些win7系统计算机管理中没有本地用户和组的状况,如今就有用户反映在使用电脑的时候遇到win7系统计算机管理中没有本地用户和组的情况不知怎么解决,针对这个问题 ...

最新文章

  1. Java基础语法(一)注释,关键字,常量,变量,数据类型,标识符,数据类型转换...
  2. 微信小程序免费SSL证书https、TLS版本问题的解决方案
  3. 你以为的周末 vs 实际上的周末
  4. 【Linux 内核】CFS 调度器 ① ( CFS 完全公平调度器概念 | CFS 调度器虚拟时钟 Virtual Runtime 概念 | 四种进程优先级 | 五种调度类 )
  5. shell实例第23讲:每天定时备份nginx日志
  6. 金融风控实战——有监督分箱
  7. 记录spark-yarn模式下提交自己写的java程序
  8. 杀人游戏约瑟夫环(洛谷P1145题题解,Java语言描述)
  9. XP下安装SQL2000企业版本(转载)
  10. K8S+KubeSphere之Helm安装
  11. Python机器学习:PCA与梯度上升03求数据的主成分PCA
  12. 获取自己主机外网ip
  13. Python基础 day4
  14. 深入浅出 NXLog (一)
  15. SSM项目实战之十二:用户信息的修改
  16. 小米pro15拆机_小米pro拆机图解(8步)
  17. 微信公众号网页 H5 video 标签自动播放
  18. 《大话脑科学》之:熟练掌握十门外语之从入门到放弃之语言相关ERP
  19. lisp倒入excel数据画图_将excel数据导入CAD画图的方法
  20. 无卡支付时代 银行信用卡联手京东金融欲打翻身仗

热门文章

  1. 分享一个vue项目“脚手架”项目的实现步骤
  2. 解决 django 中 mysql gone away 的问题
  3. 卓克-为什么没有动物比蓝鲸的体型大?
  4. 顺序右移数组元素(内测第0届第5题)
  5. 【转】Google Chrome浏览器调试
  6. FileZilla Server下载以及安装使用
  7. OpenStack最新版本Folsom架构解析(转)
  8. web.config从.net framework3.5向4.0迁移注意事项
  9. “咏刚的家”全新改版
  10. Ubuntu - 新建管理员用户