美文网首页
React Native Android杂记

React Native Android杂记

作者: 小失 | 来源:发表于2016-05-11 10:50 被阅读124次
    1. 集成到现有Android工程的时候, 报错: Error: Requiring module "8" which threw an exception. 后来发现这篇文章http://www.jianshu.com/p/d63c9a22973d . 没有按照官方教程, 而是新建了一个AwesomeProject(react-native init AwesomeProject), 将node_modules和package.json拷贝过来, 就搞定了.

    2. 做适配的时候,由于设计师只出iPhone6尺寸的设计图,于是iOS使用的方式是以宽度为基准进行等比缩放。在React Native也使用了这种方法。字体也是通过fontSize乘以宽度比系数。在大多数安卓手机下没有问题,但是发现在LG某款手机下,却出现了一个奇怪的现象——字体比一般的大。后来发现是这个原因:安卓有个概念是fontScale,代表字体比例,iOS并没有这个概念。在Dimensions.get('window')的结果中,iOS只有width,height和scale。这个scale代表的是像素密度,即一个dp下的像素个数。因此,可以理解为iOS默认所谓的fontScale就是scale。
      将Dimensions.get('window')结果打印,如下:

    机型 屏幕宽 屏幕高 scale fontScale
    ip5s 320 568 2 *
    ip6/6s 375 667 2 *
    ip6p 414 736 3 *
    三星note3 360 640 3 3
    nexus6 411 683 3.5 3.5
    三星s4 360 640 3 3
    LG nexus5 360 592 3 3.4499

    上面表格中,安卓手机的机型名字可能不一定对(妈蛋我是iOS开发),要表达的意思就是:你看上面那个LG的手机,scale和fontScale不一样,这样就会导致,同样的fontSize是13,在LG手机上,字体就会显示的大一点。
    解决方案:字体等比缩放再乘以一个scale/fontScale的字数就好了。

    相关文章

      网友评论

          本文标题:React Native Android杂记

          本文链接:https://www.haomeiwen.com/subject/vpxurttx.html