我通过以下方式成功添加了自定义字体:
像这样将 *.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”。我尝试将它们添加为“Open Sans_900.ttf”并设置 fontWeight: 900
但这没有用,它显示了字体的粗体版本。
有没有办法添加这些额外的字体粗细?
最佳答案
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
关于android - 如何为 react-native android 项目添加不同字体粗细的字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38815234/