我正在努力了解react native中的字体与字体家族。我在shoutem/ui库和exponentjs框架之间发现了一个错误,其中shoutem/ui将TextInput的样式设置为Rubik
。然而,exponentjs项目单独加载每个Rubik字体,并且需要引用特定的Rubik字体或权重,例如Rubik-Regular
。
https://github.com/shoutem/ui/blob/develop/theme.js
https://github.com/exponent/shoutem-example
我不明白的是:在默认的react原生字体实现中,是否存在默认的魔力,它理解所有这些Rubik字体都是字体家族的一部分,并将整个字体设置为Rubik
,并在文本设置为粗体时根据需要显示粗体、斜体等?这是否意味着Exponent没有实现将所有这些字体聚合到命名字体族组中的字体聚合功能?
或者。。。
shoutem库引用应用程序中不存在的字体是否犯了错误?
指数应用程序如何加载Shotem库使用的所有字体:
{'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)
您在使用Shoutem UI时似乎遇到了问题,因为您正在与Expo一起使用它,Expo对您可以使用的本地功能有限制。
以下是您需要做些什么才能使其发挥作用的示例:https://github.com/shoutem/ui/tree/develop/examples/create-react-native-app