Проблема:
-
В разработке работает нормально (
)Код: Выделить всё
npx expo run:android -
Работает при первом запуске APK после установки.
Сбой после закрытия приложения и повторного открытия — строка состояния становится полностью белой
-
Изменение темы вручную позволяет временно исправить ситуацию
- Использование expo-status-bar со стилем и реквизитами backgroundColor
- Реализация прослушивателя AppState для определения состояния переднего плана приложения
- Добавление таймаутов для принудительного обновления строки состояния
- Контекст темы работает правильно (доказано ручным исправлением темы)
Вот моя текущая реализация App.tsx:В чем мне нужна помощь:Код: Выделить всё
import { NavigationContainer } from "@react-navigation/native"; import { StatusBar } from "expo-status-bar"; import { AppState, Platform, useRef, useEffect } from "react-native"; import { SafeAreaProvider } from "react-native-safe-area-context"; import RootNavigator from "./src/navigation/RootNavigator"; import { ThemeProvider, useTheme } from "./src/shared/contexts/ThemeContext"; const ThemedStatusBar = () => { const { isDarkMode, theme } = useTheme(); const appState = useRef(AppState.currentState); useEffect(() => { const subscription = AppState.addEventListener('change', nextAppState => { if (appState.current.match(/inactive|background/) && nextAppState === 'active') { if (Platform.OS === 'android') { setTimeout(() => { // Attempt to force status bar update }, 100); } } appState.current = nextAppState; }); return () => subscription.remove(); }, [isDarkMode, theme]); return ( ); }; function Main() { return ( ); } export default function App() { return ( ); }
Каков правильный подход, чтобы обеспечить правильное сохранение стиля строки состояния при повторном открытии приложения из выключенного состояния? Контекст темы доступен и работает, но строка состояния не инициализируется должным образом при холодном запуске.
Подробнее здесь: https://stackoverflow.com/questions/798 ... ative-expo