当“link”不是命令并且 npx react-native-asset 没有做任何事情时,我如何将自定义字体添加到我的 react native 项目中

How Do I add custom fonts to my react native project when it says "link" is not a command and npx react-native-asset is not doing anything

提问人:24ycarasco 提问时间:11/15/2023 更新时间:11/16/2023 访问量:36

问:

我的 react-native-cli 版本是,我的 react-native 版本是。我一直在尝试将等宽字体添加到我的项目中。我已经制作了一个带有字体文件夹的资产文件夹,其中的 Monospace.ttf 文件已经在项目的根目录中。我还做了一个 react-native.config.js 文件,里面有这个:2.0.10.72.6

module.exports = {
    project: {
        android:{},
        ios:{},
    },
    assets:['./assets/fonts/'],
}

当我尝试使用它时,它说链接未被识别为命令。当我尝试使用它时,它什么也没做,只是把我送到下一行。我还尝试全局安装 react-native-asset,它确实安装了,但之后不起作用。react-native linknpx react-native-assetnpx react-native-asset

这是我试图说的:

titleText: {
            position: 'relative',
            bottom: 200,
            fontSize: 55,
            fontFamily: 'Monospace',
        }
Node.js 反应原生 字体

评论


答:

0赞 Cam Hoang 11/16/2023 #1

对于Android react-native,您必须执行进一步的步骤才能使其正常工作。

  1. 将静态字体文件复制到 /android/app/src/main/res/font 中
  2. 重命名字体文件名以全部小写。
  3. 创建 {{字体名称}}.xml 例如:oswald.xml
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
        <font android:fontStyle="normal" android:fontWeight="200" android:font="@font/oswald_extralight" />
        <font android:fontStyle="normal" android:fontWeight="300" android:font="@font/oswald_light" />
        <font android:fontStyle="normal" android:fontWeight="400" android:font="@font/oswald_regular" />
        <font android:fontStyle="normal" android:fontWeight="500" android:font="@font/oswald_medium" />
        <font android:fontStyle="normal" android:fontWeight="600" android:font="@font/oswald_semibold" />
        <font android:fontStyle="normal" android:fontWeight="700" android:font="@font/oswald_bold" />
</font-family>
  1. 将以下代码添加到 MainApplication.Java 中
@Override
public void onCreate() {
    super.onCreate();
    // ...
    ReactFontManager.getInstance().addCustomFont(this, "Oswald", R.font.oswald);
}