You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native应用中是否可以添加自定义字体?

解答

当然可以,React Native 原生就支持自定义字体接入,整个流程对新手很友好,不需要写复杂的原生代码,按下面的步骤操作就能搞定:

  • 第一步:准备字体资源
    优先选.ttf、.otf格式的字体文件,不要用小众格式避免兼容问题。注意提前确认字体版权,商用场景一定要拿到合法授权,避免侵权纠纷。

  • 第二步:放置字体文件
    在你的React Native项目根目录新建assets/fonts/文件夹,把所有需要用到的字体文件全部放到这个目录下。

  • 第三步:添加资源路径配置
    在项目根目录找到(没有就手动新建)react-native.config.js文件,写入以下配置:

    module.exports = {
      project: {
        ios: {},
        android: {},
      },
      assets: ['./assets/fonts/'],
    };
    
  • 第四步:自动关联字体到原生项目
    在项目根目录的终端执行命令npx react-native-asset,这个脚本会自动把字体文件同步到安卓、iOS两端的原生资源配置里,不需要你手动改Xcode或者安卓工程的配置。如果是iOS端,执行完上述命令后记得进入ios目录跑一次pod install,避免资源关联失效。

  • 第五步:代码中调用自定义字体
    直接在样式的fontFamily字段填写字体的实际名称即可。这里提一个新手十有八九会踩的坑:fontFamily要填的不是字体文件的文件名,是字体文件内置的PostScript名称,比如你文件名叫ZcoolKuaiLe-Regular.ttf,实际内置名称可能是ZCOOL KuaiLe,填错的话字体会加载失败,自动回退到系统默认字体。
    调用示例:

    import { Text, StyleSheet } from 'react-native';
    
    export default function FontDemo() {
      return <Text style={styles.title}>测试自定义字体效果</Text>
    }
    
    const styles = StyleSheet.create({
      title: {
        fontFamily: 'ZCOOL KuaiLe', // 填写字体实际内置名称
        fontSize: 20,
      }
    })
    

几个实用注意事项

  • 如果你是用Expo搭建的项目,不需要跑react-native-asset命令,直接用expo-font模块加载字体即可,流程更简单。
  • 配置完成后一定要重启开发服务、重新编译安装APP,字体属于原生静态资源,热重载/快速刷新不会让新配置生效。
  • 不同字重、斜体的字体样式建议单独引入对应的字体文件,不要依赖系统自动模拟加粗、斜体效果,否则安卓和iOS端的显示差异会非常大。

内容的提问来源于stack exchange,提问作者MegaMindTheCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 13:06:24