0

我试图在 React Native 中理解字体与字体系列。我在shoutem/ui 库和exponentjs 框架之间发现了一个错误,其中shoutem/ui 将TextInput 的样式设置为Rubik. 然而,exponentjs 项目单独加载每个魔方字体,并且需要一个特定魔方字体或粗细的引用,例如Rubik-Regular.

https://github.com/shoutem/ui/blob/develop/theme.js

https://github.com/exponent/shoutem-example

我不明白的是:在默认的 react-native 字体实现中的某个地方是否有默认的魔法,它理解所有这些 Rubik 字体都是字体系列的一部分,并将整个字体设置为Rubik并显示粗体、斜体等...当文本样式设置为粗体时需要?这是否意味着 Exponent 没有实现将所有这些字体聚合到一个命名字体系列组中的字体聚合功能?

或者...

是因为引用应用程序中不存在的字体,shoutem 库出错了吗?

指数应用程序如何加载shoutem库使用的所有字体:

 {'Rubik-Black': require('./node_modules/@shoutem/ui/fonts/Rubik-Black.ttf')},
  {'Rubik-BlackItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-BlackItalic.ttf')},
  {'Rubik-Bold': require('./node_modules/@shoutem/ui/fonts/Rubik-Bold.ttf')},
  {'Rubik-BoldItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-BoldItalic.ttf')},
  {'Rubik-Italic': require('./node_modules/@shoutem/ui/fonts/Rubik-Italic.ttf')},
  {'Rubik-Light': require('./node_modules/@shoutem/ui/fonts/Rubik-Light.ttf')},
  {'Rubik-LightItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-LightItalic.ttf')},
  {'Rubik-Medium': require('./node_modules/@shoutem/ui/fonts/Rubik-Medium.ttf')},
  {'Rubik-MediumItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-MediumItalic.ttf')},
  {'Rubik-Regular': require('./node_modules/@shoutem/ui/fonts/Rubik-Regular.ttf')},
  {'Rubik': require('./node_modules/@shoutem/ui/fonts/Rubik-Regular.ttf')},
  {'rubicon-icon-font': require('./node_modules/@shoutem/ui/fonts/rubicon-icon-font.ttf')},

  ...    using Exponent.Font.loadAsync(font)
4

1 回答 1

0

似乎您在使用 Shoutem UI 时遇到了问题,因为您将它与 Expo 一起使用,它对您可以使用哪些本机功能有限制。

这是您需要做些什么才能使其工作的示例:https ://github.com/shoutem/ui/tree/develop/examples/create-react-native-app

于 2017-04-10T15:04:36.763 回答