如何为 react-native android 项目添加不同字体粗细的字体?

新手上路,请多包涵

我设法通过以下方式添加了自定义字体:

  • 将 *.ttf 文件放入 ProjectName/android/app/src/main/assets/fonts/ 中,如下所示:

    • 打开 Sans.ttf
    • 打开 Sans_italic.ttf
    • 打开 Sans_bold.ttf
    • 打开 Sans_bold_italic.ttf
  • 并通过 fontFamily: "Open Sans" 设置字体系列

但是我想使用额外的字体粗细,例如“Semi Bold”、“Extra Bold”。我尝试将它们添加为“打开 Sans_900.ttf”并设置 fontWeight: 900 但这不起作用,它显示字体的粗体版本。

有没有办法添加这些额外的字体粗细?

原文由 Gokhan Sari 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
1 个回答

Android 上对自定义字体的开箱即用支持在 React Native 中受到了一些限制。它不支持除 normalbold 以外的字体粗细(它还支持 italic fontStyle )。如果您想要其他自定义权重,则必须将它们添加为具有不同名称的单独字体(正如大卫在他的回答中提到的那样)。

RN 将找到的唯一字体文件具有以下格式:

  • {fontFamilyName}
  • {fontFamilyName}_bold
  • {fontFamilyName}_italic
  • {fontFamilyName}_bold_italic

支持的扩展: .ttf.otf

这确实没有记录在任何地方(据我所知),但您可以在此处阅读字体管理器代码: https ://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/ com/facebook/react/views/text/ReactFontManager.java

原文由 Dan Horrigan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题