概要: このチュートリアルでは、React Nativeアプリにカスタムフォントをロードする方法を学習します。
パッケージの設定
ステップ1. ターミナルを開き、React Nativeディレクトリに移動します
ステップ2. このコマンドを実行して、expo-font、@expo-google-fonts/inter、およびexpo-splash-screenパッケージをインストールします
npx expo install expo-font @expo-google-fonts/inter expo-splash-screen
Code language: JavaScript (javascript)
パッケージは以下のとおりです
- expo-font – カスタムフォントのロードを可能にします。
- expo-splash-screen – ネイティブのスプラッシュスクリーンの表示を管理します。
- @expo-google-fonts/inter – アプリにInterフォントをロードします。
カスタムフォントの使用
Interフォントを使用するためにApp.js
を変更します
import { useEffect } from 'react';
import { StyleSheet, SafeAreaView, Text } from 'react-native';
import { Inter_700Bold, Inter_400Regular, Inter_300Light, useFonts } from '@expo-google-fonts/inter';
import * as SplashScreen from 'expo-splash-screen';
SplashScreen.preventAutoHideAsync();
export default function App() {
const [fontLoaded, error] = useFonts({
Inter_400Regular,
Inter_700Bold,
Inter_300Light
});
useEffect(() => {
if (fontLoaded || error) {
SplashScreen.hideAsync();
}
}, [fontLoaded, error]);
if (!fontLoaded && !error) {
return null;
}
return (
<SafeAreaView style={styles.container}>
<Text style={styles.text}>Hello, World!</Text>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
text: {
fontFamily: 'Inter_400Regular',
fontSize: 40,
}
});
Code language: JavaScript (javascript)
動作方法。
まず、スプラッシュスクリーンを表示します
SplashScreen.preventAutoHideAsync();
Code language: JavaScript (javascript)
次に、useFonts
フックを使用してInterフォントファミリーを非同期にロードします
const [fontLoaded, error] = useFonts({
Inter_400Regular,
Inter_700Bold,
Inter_300Light
});
Code language: JavaScript (javascript)
useFonts
フックは2つの値の配列を返します
fontLoaded
: フォントの読み込みが完了した場合true、それ以外の場合はfalse。error
: フォントの読み込み中にエラーが発生した場合true、それ以外の場合はnull。
次に、フォントがロードされた場合、またはエラーが発生した場合にスプラッシュスクリーンを非表示にします
useEffect(() => {
if (fontLoaded || error) {
SplashScreen.hideAsync();
}
}, [fontLoaded, error]);
Code language: JavaScript (javascript)
次に、Inter_300Light
フォントを使用するtext
スタイルを定義します
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
text: {
fontFamily: 'Inter_300Light',
fontSize: 40,
}
});
Code language: JavaScript (javascript)
最後に、Text
コンポーネントにtext
スタイルを使用します
return (
<SafeAreaView style={styles.container}>
<Text style={styles.text}>Hello, World!</Text>
</SafeAreaView>
);
Code language: JavaScript (javascript)
まとめ
- アプリのカスタムフォントをロードするには、
useFonts
フックを使用します。
このチュートリアルは役に立ちましたか?