typescript - 如何在 react-native 中忽略操作系统字体?
问题描述
我想忽略系统操作字体(iOS 和 Android)并使用我在 react-native 项目中使用的各种字体。我只想做一次,但我不明白怎么做。你能帮助我吗?
解决方案
将字体添加到资产
将您想要的所有字体文件添加到 react native 项目根目录中的“assets/fonts”文件夹中
包.json
接下来我们需要告诉 React Native 自定义字体的位置。我们通过将 rnpm 添加到提供字体文件路径的 package.json 来做到这一点:
"rnpm": {
"assets": [
"./assets/fonts/"
]
},
然后我们告诉 react native 为我们链接这些字体文件:
react-native link
在IOS上
这应该在 iOS 的 Info.plist 文件中添加字体引用,在 Android 上将字体文件复制到 android/app/src/main/assets/fonts。您可以通过从 iOS 文件夹中打开 Info.plist 并查找 UIAppFonts 键来验证这一点,您应该会看到类似以下内容:
<key>UIAppFonts</key>
<array>
<string>YOUR_FONT_FILE.ttf</string>
</array>
在安卓上
如果您查看文件路径“android/app/src/main/assets/fonts/”,您应该会看到您的字体已被复制:
反应原生样式
随着您的字体嵌入和引用,将它们添加到您的 React Native 样式中是一个简单的案例。只需使用您的字体名称添加一个 fontFamily 属性:
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "center",
alignItems: "center",
backgroundColor: "#F5FCFF"
},
foo: {
fontFamily: "YOUR_FONT_FAMILY_NAME",
fontSize: 30,
textAlign: "center",
margin: 10
},
bar: {
fontFamily: "YOUR_FONT_FAMILY_NAME",
fontSize: 20,
textAlign: "center",
color: "#333333",
marginBottom: 5
}
});
资料来源:
推荐阅读
- jenkins - Jenkins Pipeline 轻量级执行器仍然是重量级的
- html - 段落换行在弹性容器中失败
- scala - 如何获取 Seq[String] 而不是 Seq[Any]?
- mongodb - Mongodb 4.0.2 版安装有问题
- javascript - 定位项目,使其中心与 CSS 中另一个元素的中心对齐(仅在必要时使用 JS)
- java - 字符串索引超出范围,找不到类似的东西
- agda - 依赖模式匹配究竟是如何工作的?
- asp.net-mvc - 从文件路径到 MVC 中的 HttpPostedFileBase
- wso2 - 在 wso2 BPS 中用于 BPMN resttask 错误处理
- ms-access-2013 - 新的链接表 MS 访问