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

Jeśli Twoja aplikacja zawiera kod Compose i View, może być konieczne wyraźne określenie, które dopełnienia systemowe mają być używane, oraz zapewnienie, że dopełnienia są wysyłane do widoków równorzędnych.

Zastępowanie domyślnych dopełnień

Może być konieczne zastąpienie domyślnych insetów, 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 ma używać dopełnień, a który ma je ignorować.

Jeśli na przykład układ zewnętrzny jest układem widoku Androida, dopełnienia powinny być używane w systemie widoków, a ignorowane w Compose. Jeśli natomiast układ zewnętrzny jest elementem kompozycyjnym, dopełnienia powinny być używane w Compose, a elementy kompozycyjne AndroidView powinny być odpowiednio dopełnione.

Domyślnie każdy element ComposeView używa wszystkich dopełnień na poziomie użycia WindowInsetsCompat. Aby zmienić to domyślne działanie, ustaw wartość AbstractComposeView.consumeWindowInsets na false.

Wysyłanie dopełnień do widoków z zachowaniem zgodności wstecznej

Jeśli Twoja aplikacja zawiera kod widoków, może być konieczne sprawdzenie, czy dopełnienia 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 dotyczącym widoków od krawędzi do krawędzi.

Ikony na pasku systemu

Wywołanie enableEdgeToEdge zapewnia, że kolory ikon na pasku systemu będą się aktualizować, gdy zmieni się motyw urządzenia.

Podczas przechodzenia do trybu od krawędzi do krawędzi może być konieczne ręczne zaktualizowanie kolorów ikon na pasku 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);