我正在尝试在我的 react-native 应用程序中使用字体“Verveine Corp Regular”。
该字体适用于 iOS 版本,但不适用于 Android 版本。
字体为 .tff 格式并放置在我工作的根目录中(链接在 package.json 中并且我已经运行了 react-native 链接)和“android/gradle/src/main/assets/fonts”中但它仍然没有选择字体。我还多次清理并重建了该应用程序。
在 android 调试器中检查使用该字体的元素时,它说它正在使用该字体。但是字体还是默认字体。
有人可以就此问题提供一些帮助或指导吗?
谢谢!
最佳答案
其他答案帮助我完成了这项工作,谢谢。只有当文件名中的字体包含大写字母时,才可能需要此操作。更完整的答案:
在react native中正常添加字体,例如:
{react-native-project}/fonts/GovtAgentBB.ttf
运行react-native link,这会将字体放入
{react-native-project}/android/app/src/main/assets/fonts/GovtAgentBB.ttf
{react-native-project}/android/app/src/main/assets/fonts/GovtAgentBB_ital.ttf
但是android,带来机器人而不是人类,不喜欢这样。因此,在变体之前使用所有小写字母和下划线重命名文件,例如:
{react-native-project}/android/app/src/main/assets/fonts/govtagentbb.ttf
{react-native-project}/android/app/src/main/assets/fonts/govtagentbb_ital.ttf
然后,您必须根据平台更改样式中的字体名称。对于 iOS,使用人名,即显示在 Mac 字体菜单窗口标题中的字体名称(或您在 Web 上看到的名称)。对于 Android,您必须自动使用刚刚重命名的文件的名称。
{Platform.OS === 'ios' ? (
<Text style={styles.welcome}>
Hello World!
</Text>
) : (
<Text style={styles.welcomeAndroid}>
Hello World
</Text>
)}
const styles = StyleSheet.create({
...
welcome: {
fontFamily: 'Government Agent BB',
},
welcomeAndroid: {
fontFamily: 'govtagentbb',
},
关于Android react-native 应用程序不拾取字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42555315/