我设法通过以下方式添加了自定义字体:
将 *.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 许可协议
Android 上对自定义字体的开箱即用支持在 React Native 中受到了一些限制。它不支持除
normal
和bold
以外的字体粗细(它还支持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