react-native android fontFamily不生效

问题1:

我将一个fontFamily添加到index.android.js的欢迎样式,但不起作用。 fontFamily实际上在Android上工作?

欢迎:{fontSize:20,fontFamily:'roboto-thin',textAlign:'center',margin:10}

问题2:

如果fontFamily在Android上工作,有没有办法从资产加载自定义字体? 或者,这是否有一些function要通过反应本机来实现?

Solutions Collecting From Web of "react-native android fontFamily不生效"

对于Android:自定义字体添加了0.16.0-rc。 所以你首先需要有0.16.0-rc的版本,然后你可以从网上下载任何字体。

  1. 把你的字体文件放在projectfolder / android / app / src / main / assets / fonts / font_name.ttf中
  2. 记得重新编译一下: react-native run-android
  3. 然后你可以在你的风格中使用fontFamily: 'font_name'

还请注意以下对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

这个function还没有实现。 在这里看到github上的相关问题。

我相信以下是对这里已经解释的方法的一个更清洁的替代scheme:

把你所有的字体放在你的React-Native项目目录中

 ./assets/fonts/ 

在你的package.json中添加以下行

 "rnpm": { "assets": ["./assets/fonts"] } 

终于从你的项目目录中运行terminal

 $ 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

看起来像自定义字体被添加,​​检查了这个提交:

https://github.com/facebook/react-native/commit/bfeaa6a4f531cfc18c097bc9ffb6a8dbe3ddc702