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

React Native开发Android应用:如何实现文本fontWeight:500效果?

解决React Native Android自定义字体 fontWeight 兼容问题

方案1:生成对应字重的字体文件

  • 使用免费在线工具Font Squirrel Webfont Generator,上传你的Migra Extralight字体文件,切换到「Expert」模式调整字重参数为500,生成新字体包后,将文件放到项目的android/app/src/main/assets/fonts目录。
  • 本地工具可选用FontForge:打开原字体后,通过「Element > Font Info > OS/2 > Weight Class」修改为500,导出为TTF/OTF格式再导入项目。

方案2:用缩放模拟字重效果

无需生成新字体,通过微调缩放比例和字间距逼近Web端500字重效果,示例代码:

<Text
  style={{
    fontFamily: 'Migra-Extralight',
    transform: [{ scaleX: 1.05 }, { scaleY: 1.05 }],
    letterSpacing: 0.2,
  }}
>
  目标文本内容
</Text>

注意:不同字号需对应调整缩放比例,建议多测试适配。

方案3:替换高兼容字体库

放弃react-native-font-weight,改用对高版本React Native更友好的库,比如expo-font(Expo项目适用):

  1. 安装依赖:npx expo install expo-font
  2. 加载字体示例:
import { useFonts } from 'expo-font';

export default function App() {
  const [fontsLoaded] = useFonts({
    'Migra-Extralight': require('./assets/fonts/MigraExtralight.ttf'),
    'Migra-Extralight-500': require('./assets/fonts/MigraExtralight-500.ttf'),
  });

  if (!fontsLoaded) {
    return null;
  }

  return <Text style={{ fontFamily: 'Migra-Extralight-500' }}>目标文本内容</Text>;
}

字体配置注意事项

Android端字体文件命名需规范,比如MigraExtralight-500.ttf,同时在react-native.config.js中配置:

module.exports = {
  assets: ['./assets/fonts/'],
};

执行npx react-native link确保字体链接生效(RN 0.60+支持自动链接,手动执行更稳妥)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:40:26