Expo Google Fonts仅在App.js生效,组件中无法使用的问题
问题原因与解决方案
你的问题出在安卓端无法对常规字重字体自动模拟加粗,而Web端会自动处理这种情况:
你在Header的Text组件里同时设置了fontFamily: "BalsamiqSans_400Regular"(400是常规字重)和fontWeight: "bold",安卓系统找不到对应粗体的字体文件,就会 fallback 到系统默认字体,导致自定义字体不生效;而Web端会自动给常规字体添加粗体效果,所以能正常显示。
解决步骤:
导入并注册粗体字体
你已经安装了@expo-google-fonts/balsamiq-sans包,这个包包含所有字重的字体,只需在App.js中添加粗体的导入和注册:// App.js 中修改导入 import { useFonts, BalsamiqSans_400Regular, BalsamiqSans_700Bold } from '@expo-google-fonts/balsamiq-sans'; // 修改useFonts注册 let [fontsLoaded] = useFonts({ BalsamiqSans_400Regular, BalsamiqSans_700Bold, // 新增粗体字体 });修改Header组件的Text样式
把Header里的Text样式换成粗体字体,同时移除fontWeight: "bold"(因为字体本身已经是粗体,无需额外设置):<Text style={{ fontSize: 19, marginLeft: 10, fontFamily: "BalsamiqSans_700Bold" // 使用粗体字体 }}>Does not work</Text>额外排查操作(可选)
如果修改后还是不生效,尝试:- 重启Expo Go应用和模拟器/手机
- 清除Expo缓存:运行
npx expo start -c
内容的提问来源于stack exchange,提问作者user17759905
相关产品推荐
相关产品推荐

