【问题标题】:React Native custom fonts working on IOS but not on AndroidReact Native 自定义字体适用于 IOS 但不适用于 Android
【发布时间】:2018-03-26 20:27:49
【问题描述】:

按照react-native link 程序,我添加了 Google Font Fira Sans 字体(斜体、粗体、常规)。

我可以看到字体已经被复制到src/main/assets/fonts,同样是在IOS的Resources文件夹中

字体在 IOS 上可以正常工作,但在 android 上只有 Bold 可以工作,但 Italic 或 Regular 或任何其他字体都不能工作。

我尝试将fontFamily 设置为字体的名称属性,但仍然没有变化

这就是我设置字体变量的方式

export const Fonts = {
    //Working on IOS but not on Android
    //I have tried `FiraSans-Italic` `Fira Sans Italic` and nothing works
    FiraSansItalic: (Platform.OS === 'ios') ? "FiraSans-Italic" : 'Fira Sans Italic',

    //Bold works fine for both platforms
    FiraSansBold: (Platform.OS === 'ios') ? "FiraSans-Bold" : "FiraSans-Bold"
}

有什么想法可能是错的吗?

谢谢

【问题讨论】:

  • 您需要在 Android 上引用完整的字体文件名,而在 iOS 上您需要引用字体系列名称。例如:const FiraSans = (Platform.OS === 'ios') ? 'Fira Sans' : 'FiraSans.ttf';(这是一个没有看到实际代码的注释)。
  • @zvona 谢谢你的回复。我确实拥有您发布 (Platform.OS === 'ios') ? "FiraSans-Italic" : 'FiraSans-Italic.ttf 的方式,我确实尝试像您拥有的那样放置文件扩展名,但仍然没有运气
  • 这是我用字体书Fira Sans Italic检查字体时的全名,但即使我这样命名fontFamily它也不起作用

标签: android react-native fonts


【解决方案1】:

对于遇到同样问题的人,请确保您没有将任何这些(fontWeightfontStyle)样式应用于您的 textStyle,如果这样做,它将从您的文本中删除您的自定义字体样式。

【讨论】:

    【解决方案2】:

    检查Android的文件名,android需要引用文件名而不是字体家族名。还要确保为您的 text/textInput 组件设置 key 以使自定义字体在更改为新字体后正确呈现。 (如果您不这样做,Android 可能仍会呈现旧字体)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      • 2020-10-04
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多