android - Expo字体loadAsync在特定设备React Native Android中不起作用
问题描述
我正在使用 loadAsync 加载一些字体。在我的设备上测试应用程序时它运行良好,但是当我在另一台设备(Galaxy s10e)上尝试时,字体似乎已加载(使用 Font.isLoaded 检查)但在使用 fontFamily 时不显示。
这是我的 App.js
import * as Font from 'expo-font';
import {AppLoading} from 'expo';
import React, {useState} from 'react';
const fetchFonts = async() => {
return await Font.loadAsync ({
secular: require ('./assets/fonts/SecularOne-Regular.ttf'),
varela: require ('./assets/fonts/VarelaRound-Regular.ttf'),
lemon: require ('./assets/fonts/LemonMilk.otf'),
collegiate: require ('./assets/fonts/CollegiateBlackFLF.ttf'),
assistant: require ('./assets/fonts/Assistant-ExtraBold.ttf'),
zvulun: require ('./assets/fonts/zvulun-black-fm.otf'),
roboto: require ('./assets/fonts/Roboto-Medium.ttf'),
osh: require ('./assets/fonts/OpenSansHebrew-ExtraBold.ttf'),
oshregular: require ('./assets/fonts/OpenSansHebrew-Regular.ttf'),
oshlight: require('./assets/fonts/OpenSansHebrew-Light.ttf'),
myriad: require('./assets/fonts/myriad-hebrew.ttf')
});
};
export default function App () {
const [dataLoaded, setDataLoaded] = useState (false);
if (!dataLoaded) {
return (
<AppLoading
startAsync={() => fetchFonts().then(() => console.log('done')).catch((err) => console.log(err))}
onFinish={() => setDataLoaded (true)}
onError={err => console.log (err)}
/>
);
}
return *the actual app*;
}
需要明确的是,字体确实可以在另一台设备 (Galaxy s10+) 上正确加载和显示。世博 SDK 37 Android 11 世博字体 8.1.0
解决方案
推荐阅读
- javascript - ASP.NET Core 2.2 AntiForgeryToken with JSON.Stringify
- python - ImportError:需要“六”包
- entity-framework - ForeignKey 到非 PrimaryKey 但仍然是唯一的
- html - HTML中的锚点
- javascript - vue .js 上的 (function () { [native code] })
- nltk - StanfordNERTagger 编译中的 UnicodeDecodeError
- angular - How to use more than one NGRX action that does the same thing following "action hygiene" guideline?
- c# - repository.InsertAsync always returns entity.Id 0
- intellij-idea - 从插件在 IntelliJ 中创建拆分窗格
- ms-access - 在 MS Access 中编辑记录时,如何使自动生成的编号保持不变?