如何在React Native 0.60 +

时间:2019-09-24 19:09:35

标签: android ios react-native fonts

问题

我一直在互联网上搜索有关在React Native中使用自定义字体系列的指南(0.60+,没有Expo)。当前,所有指南和答案似乎都已过时,不正确或不完整。具体来说,如何将整个字体粗细和样式实现为自定义字体(正确使用fontWeightfontStyle属性)?

背景

我希望有一个解决方案可以正确地使用fontWeightfontStyle风格的道具。但是,我发现的解决方案不能做到这一点。其中一些:

  1. This解决方案显示了多种字体类型。但是,它通过fontFamily样式道具在粗体和常规之间切换(在fontFamily"Montserrat-Regular"之间改变族)
  2. guideStackOverflow answer都仅概述使用字体家族的基本名称(例如"Montserrat-Bold"),然后通过fontFamily: "Montserrat"选择所需的粗细和样式,并fontWeight。使用Google字体中的几种字体(同时以.ttc和.ttf字体)进行测试不会产生结果(至少在Android中不是)。两种解决方案都是几年前使用的fontStyle,这使我相信它们已经过时了。

到目前为止,我还没有找到可以正常使用的最新解决方案。也许是不可能的,但是考虑到已经建立的字体系统,这没有任何意义。

我期望发生的事情

给出样式道具:

rnpm

我将以Montserrat字体斜体显示文本,粗细为400。到目前为止,我还没有尝试过这样做。我该怎么办?

到目前为止我已经尝试过:

  • 像这样使用react-native.config.js:
     {
        fontStyle: "italic",
        fontWeight: "400",
        fontFamily: "Montserrat"
      }
    
    project: { ios: {}, android: {}, }, assets: ['./assets/fonts'] } ,我已将字体文件作为一组.ttf和一个合并的.ttc导入,没有运气。使用.ttf,我不得不将fontFamily名称更改为文件名,无法使用粗细和样式。 .ttc似乎根本不起作用。
  • (特定于Android),我尝试按照the spec on the Android Developers websitereact-native link中创建montserrat.xml文件,但似乎没有产生任何作用。

我为此陷入僵局。我不太明白为什么android/app/src/main/res/fontfontWeight样式道具即使在默认字体之外也无法使用,却会产生麻烦。谢谢您的帮助。

0 个答案:

没有答案