FontFamily React Native App 用设备自定义字体覆盖(三星和 Oppo)

Posted

技术标签:

【中文标题】FontFamily React Native App 用设备自定义字体覆盖(三星和 Oppo)【英文标题】:FontFamily React Native App overwrite with device custom font (Samsung & Oppo) 【发布时间】:2018-07-15 07:32:23 【问题描述】:

在 React Native 中,我为所有使用 Rubik 字体的文本定义字体系列,但对于某些设备(SAMSUNG 和 OPPO),字体看起来像是用自定义设备字体覆盖,因为该品牌可以为他们的设备选择自定义字体。

我不知道为什么有时有些文本看起来像是用自定义设备字体覆盖而有些文本仍然使用 Rubik 字体。

环境:

操作系统:macOS HighSierra 节点:9.3.0 纱线:1.3.2 npm: 5.7.0 守望者:4.9.0

包:

react-native: "^0.47.2, 反应:“^16.0.0-alpha.12, react-native-vector-icons:^4.4.2,

目标平台:安卓

关于如何使设备字体不能覆盖设置的字体系列字体的任何想法?

【问题讨论】:

试试这个:github.com/chrisjenx/Calligraphy 字体文件的名称是否使用破折号或下划线?我遇到了一个问题,我必须在 android 中使用下划线才能使其正常工作。 看看这个***.com/questions/19268421/…是否有帮助gist.github.com/artem-zinnatullin/7749076 您是如何加载字体的?通过google cdn还是本地? 有什么解决办法吗?我也在 oppo 手机上体验 react native 0.62.2。 【参考方案1】:

在你的 package.json 中添加密钥


.
.
.
  sideEffects:false,
.
.
.

【讨论】:

【参考方案2】:

ios中,如果你只使用fontFamily:"Rubik",应用会根据fontStyle自动识别样式,如Regualr/Italic/Bold等。

但在 android 中,有时您必须使用确切的 fontFamily,例如 fontFamily:"Rubik-SemiBold", fontFamily:"Rubik-Regular"。

它应该可以解决您的问题。

【讨论】:

以上是关于FontFamily React Native App 用设备自定义字体覆盖(三星和 Oppo)的主要内容,如果未能解决你的问题,请参考以下文章

fontFamily 'Arial' 不是使用 react-native-textinput-effects 的系统字体

React Native - Expo:fontFamily 'SimpleLineIcons' 不是系统字体,尚未通过 Font.loadAsync 加载

FontFamily React Native App 用设备自定义字体覆盖(三星和 Oppo)

使用React Native在Android / iOS上使用不同的lineHeight

fontFamily Material Icons 不是系统字体,必须通过 Exponent 加载

React Native知识2-Text组件