我将indexFamily添加到index.android.js的欢迎样式,但它不起作用。 fontFamily实际上是否适用于android?
欢迎:{ 字体:20, fontFamily中:'的Roboto薄&#39 ;, textAlign设置:'中心&#39 ;, 余量:10}
如果fontFamily在android上工作,有没有办法从资产加载自定义字体?或者这是一个由react-native实现的功能?
答案 0 :(得分:41)
对于Android: 自定义字体添加了0.16.0-rc。因此,您需要先安装0.16.0-rc版本,然后才能从网上下载任何字体。
react-native run-android
。答案 1 :(得分:32)
另请注意react-native中自定义Android字体的以下限制:
android/app/src/main/assets/fonts
.ttf
个文件fontFamily
完全匹配。例如,如果fontFamily
为'Source Sans Pro'
,
该文件必须被称为Source Sans Pro.ttf
(而不是SourceSansPro.ttf
)。以下段落中提到的任何后缀都会自动从文件中删除。_bold
(例如Source Sans Pro_bold.ttf
)_italic
_bold_italic
答案 2 :(得分:3)
我认为以下是对此处已解释过的方法的更清晰的替代方法:
将所有字体放入React-Native项目目录
./assets/fonts/
在package.json
中添加以下行"rnpm": {
"assets": ["./assets/fonts"]
}
最终从项目目录
在终端中运行$ react-native link
使用它在你的样式中声明这种方式
fontFamily: 'your-font-name without extension'
如果你的字体是 Raleway-Bold.ttf 那么,
fontFamily: 'Raleway-Bold'
来源https://medium.com/@danielskripnik/how-to-add-and-remove-custom-fonts-in-react-native-b2830084b0e4
答案 3 :(得分:2)
此功能尚未实施。请参阅github here上的相关问题。
答案 4 :(得分:1)
似乎添加了自定义字体,请查看此提交:
https://github.com/facebook/react-native/commit/bfeaa6a4f531cfc18c097bc9ffb6a8dbe3ddc702
答案 5 :(得分:0)
您好,这个问题对我来说已经超过两天了,其字体为“ El + Messiri”字体“ https://fonts.google.com/specimen/El+Messiri”
我正在尽一切可能写:
您可以在样式中使用fontFamily:'ElMessiri-Regular'。
但故障是在 fontFamily:“ ElMessiri-Regular” 之后使用了 fontWeight:“粗体” ,并且fontWeight覆盖了fontFamily,因为“ El + Messiri”字体具有自己的fontFamily粗体,它是“ ElMessiri-Bold”
答案 6 :(得分:0)
解决我问题的唯一方法是记录所有字体以找出正确的命名
(确保仅在添加资产/字体并运行react-native link
之后执行以下步骤):
无论如何,要记录它们,请使用xcode打开appName.xcworkspace
文件,然后编辑AppDelegate.m将此行放在didFinishLaunchingWithOptions
方法的末尾(在return语句之前):
for (NSString* family in [UIFont familyNames])
{
NSLog(@"%@", family);
for (NSString* name in [UIFont fontNamesForFamilyName: family])
{
NSLog(@" %@", name);
}
}
因此,当您从xcode运行应用程序时,它会输出如下内容:
这样,我可以在我的本机样式中使用fontFamily Barow-Light 或 Zapfino
希望它有所帮助!