Android APK-Statusleiste wird beim App-Neustart weiß (React Native/Expo)Android

Forum für diejenigen, die für Android programmieren
Anonymous
 Android APK-Statusleiste wird beim App-Neustart weiß (React Native/Expo)

Post by Anonymous »

Ich habe in meiner React Native-App, die Expo verwendet, ein anhaltendes Problem mit der Statusleiste. Die Statusleiste wird während der Entwicklung und bei der ersten App-Installation korrekt angezeigt, wird jedoch nach dem Beenden und erneuten Öffnen der APK weiß und weist unlesbaren Inhalt auf.
Das Problem:
  • ✅ Funktioniert in der Entwicklung einwandfrei (

    Code: Select all

    npx expo run:android
    )
  • ✅ Funktioniert beim ersten APK-Start nach der Installation
  • ❌ Schlägt fehl, nachdem die App beendet und erneut geöffnet wurde – Statusleiste wird vollständig weiß
  • ✅ Durch manuelles Ändern des Designs wird das Problem vorübergehend behoben
Was ich versucht habe:
  • Expo-Status-Bar mit Stil- und Hintergrundfarben-Requisiten verwenden
  • AppState-Listener implementieren, um den Vordergrundstatus der App zu erkennen
  • Timeouts hinzufügen, um Aktualisierungen der Statusleiste zu erzwingen
  • Der Theme-Kontext funktioniert korrekt (bewiesen durch manuelle Theme-Änderung, die ihn behebt)

    Hier ist meine aktuelle App.tsx-Implementierung:

    Code: Select all

    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 (
    
    
    
    );
    }
    
    Wobei ich Hilfe benötige:

    Was ist der richtige Ansatz, um sicherzustellen, dass der Stil der Statusleiste korrekt erhalten bleibt, wenn die App aus einem beendeten Zustand erneut geöffnet wird? Der Themenkontext ist verfügbar und funktioniert, aber die Statusleiste wird bei Kaltstarts nicht richtig initialisiert.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post