Używanie wstawionych obrazów w widokach i w edytorze wiadomości

Jeśli aplikacja zawiera zarówno kod Compose, jak i View, może być konieczne wyraźne określenie, które wstawki systemowe powinny być używane przez każdy z nich, oraz upewnienie się, że wstawki są wysyłane do widoków nadrzędnych.

Zastępowanie domyślnych wcięć

Może być konieczne zastąpienie domyślnych wcięć, gdy ekran zawiera zarówno widoki, jak i kod Compose w tej samej hierarchii. W takim przypadku musisz wyraźnie określić, który z nich powinien wykorzystywać wstawki, a który powinien je ignorować.

Jeśli na przykład najbardziej zewnętrzny układ jest układem widoku Androida, należy wykorzystać wstawki w systemie widoku i zignorować je w Compose. Jeśli natomiast układ zewnętrzny jest funkcją kompozycyjną, należy wykorzystać wstawki w Compose i odpowiednio wypełnić funkcje kompozycyjne AndroidView.

Domyślnie każdy element ComposeView wykorzystuje wszystkie wstawki na poziomie wykorzystania WindowInsetsCompat. Aby zmienić to domyślne działanie, ustaw AbstractComposeView.consumeWindowInsets na false.

Zgodne wstecznie wysyłanie wstawek do widoków

Jeśli aplikacja zawiera kod widoków, może być konieczne potwierdzenie, że wstawki są wysyłane do widoków równorzędnych na urządzeniach z Androidem 10 (poziom API 29) lub starszym. Więcej informacji znajdziesz w przewodniku po widokach od krawędzi do krawędzi.

Ikony na pasku systemu

Wywołanie enableEdgeToEdge zapewnia aktualizację kolorów ikon na pasku systemowym po zmianie motywu urządzenia.

Podczas przechodzenia na tryb od krawędzi do krawędzi może być konieczne ręczne zaktualizowanie kolorów ikon paska systemu, aby kontrastowały z tłem aplikacji. Aby na przykład utworzyć jasne ikony na pasku stanu:

Kotlin

WindowCompat.getInsetsController(window, window.decorView)
    .isAppearanceLightStatusBars = false

Java

WindowCompat.getInsetsController(window, window.getDecorView())
    .setAppearanceLightStatusBars(false);