// /** // * Sample React Native App // * https://github.com/facebook/react-native // * // * @format // */ // // import React from 'react'; // import Navigation from './src/navigation'; // import {ThemeProvider} from './src/contexts/ThemeContext'; // // function App(): JSX.Element { // return ( // // // // ); // } // // export default App; /** * Sample React Native App * https://github.com/facebook/react-native * * @format */ import React, { useState, useEffect } from 'react'; import Navigation from './src/navigation'; import {ThemeProvider} from './src/contexts/ThemeContext'; import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; import { View, Text, ActivityIndicator, StyleSheet } from 'react-native'; function App(): JSX.Element { const [fontLoaded, setFontLoaded] = useState(false); const [fontError, setFontError] = useState(null); useEffect(() => { const loadFont = async () => { try { // 先检查字体是否已加载 const isLoaded = await MaterialIcons.hasIcon('home'); if (!isLoaded) { console.log('Material Icons not loaded. Loading now...'); await MaterialIcons.loadFont(); } // 确认字体是否加载成功 const fontName = MaterialIcons.getFontFamily(); console.log(`Font loaded successfully: ${fontName}`); setFontLoaded(true); } catch (error) { console.error('Font loading failed:', error); setFontError('Failed to load icon fonts'); } }; // 加入延迟以解决模拟器启动时的问题 const timeout = setTimeout(() => { loadFont(); }, 500); return () => clearTimeout(timeout); }, []); // 显示加载状态或错误信息 if (!fontLoaded || fontError) { return ( {fontError || 'Loading icons...'} Using MaterialIcons font family: {MaterialIcons.getFontFamily()} ); } return ( ); } const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#f5f5f5', }, statusText: { marginTop: 20, fontSize: 16, color: '#333', }, debugText: { marginTop: 10, fontSize: 12, color: '#666', fontFamily: 'monospace', }, }); export default App;