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

Jeśli Twoja aplikacja zawiera kod Compose i kod widoku, może być konieczne wyraźne określenie, które wstawki systemowe powinny być używane w każdym z nich, oraz zapewnienie, że wstawki są wysyłane do widoków równorzę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 element ma korzystać z wcięć, a który ma je ignorować.

Jeśli np. zewnętrzny układ to układ widoku Androida, musisz wykorzystać wstawki w systemie widoku i zignorować je w Compose. Jeśli najbardziej zewnętrzny układ jest komponentem, należy użyć wstawek w Compose i odpowiednio dodać do komponentów AndroidView dopełnienie.

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

Wsteczna zgodność wysyłania wstawek w przypadku 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 paska systemowego po zmianie motywu urządzenia.

Podczas przechodzenia 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 paska stanu:

Kotlin

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

Java

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