Wyświetlanie od krawędzi do krawędzi umożliwia aplikacji rysowanie interfejsu za paskami systemu – paskiem stanu, paskiem podpisu i paskiem nawigacyjnym – co zapewnia użytkownikom lepsze wrażenia. Jeśli kierujesz reklamy na urządzenia z Androidem 15 (API na poziomie 35) lub nowszym, domyślnie wymuszany jest tryb bez ramki.
Aby prawidłowo wyświetlać treści od krawędzi do krawędzi we wszystkich wersjach Androida, wykonaj te czynności. Bez tych kroków aplikacja może rysować jednolite kolory za paskami systemu lub nie animować treści synchronicznie z przejściami klawiatury ekranowej (IME).
Umiejętności związane z Androidem
Wyświetl na GitHubieDodawanie obsługi wyświetlania bez ramki
android skills add edge-to-edge1. Włącz wyświetlanie bez ramki
Aby włączyć tryb od krawędzi do krawędzi w poprzednich wersjach Androida, wywołaj enableEdgeToEdge() w metodzie Activity.onCreate():
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() // ... }
Domyślnie enableEdgeToEdge() sprawia, że paski systemowe są przezroczyste, z wyjątkiem trybu nawigacji przy użyciu 3 przycisków, w którym stosuje półprzezroczystą nakładkę na pasek nawigacyjny, aby uzyskać lepszy kontrast. Kolor ikon systemowych i zasłony dostosowuje się do jasnego lub ciemnego motywu systemu.
2. Konfigurowanie windowSoftInputMode
Ustaw android:windowSoftInputMode="adjustResize" we wpisie AndroidManifest.xml aktywności. To ustawienie umożliwia aplikacji otrzymywanie wstawek IME, dzięki czemu możesz dostosować układ za pomocą dopełnienia, gdy klawiatura ekranowa pojawia się lub znika.
<!-- In your AndroidManifest.xml file: -->
<activity
android:name=".ui.MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustResize"
android:theme="@style/Theme.MyApplication"
android:exported="true">
...
</activity>
3. Obsługa nakładania się za pomocą wcięć
Po włączeniu trybu od krawędzi do krawędzi niektóre treści i elementy interfejsu aplikacji mogą być wyświetlane za paskami systemu. Aby zapobiec zasłanianiu kluczowych lub elementów interaktywnych przez paski systemu lub nakładaniu się na gesty systemowe, musisz obsłużyć odcięcia.
Odcięcia opisują części ekranu, które przecinają się z interfejsem lub gestami systemu. Główne typy wcięć, które należy wziąć pod uwagę w przypadku wyświetlania od krawędzi do krawędzi, to:
- Odcięcia pasków systemu: reprezentują obszary, w których wyświetlane są paski systemu. Używaj ich, aby interfejs nie był zasłaniany przez paski systemowe.
- Wstawki wycięcia w ekranie: reprezentują obszary, w których na ekranie urządzenia znajduje się fizyczne wycięcie (np. na aparat).
W Compose możesz obsługiwać wstawki za pomocą linijek, modyfikatorów dopełnienia lub modyfikatorów rozmiaru wstawek. Szczegółowe informacje znajdziesz w artykule Informacje o wstawkach okien.
Tematy zaawansowane
W przypadku bardziej zaawansowanych zastosowań trybu od krawędzi do krawędzi weź pod uwagę te kwestie.
Tryb pojemny
Niektóre treści, takie jak filmy czy mapy, najlepiej wyświetlać w trybie pełnoekranowym, w którym paski systemu są ukryte. Paski systemowe możesz ukryć za pomocą WindowInsetsControllerCompat:
val windowInsetsController = WindowCompat.getInsetsController(window, window.decorView) // Hide the system bars. windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()) // Show the system bars. windowInsetsController.show(WindowInsetsCompat.Type.systemBars())
Kolory i ikony paska systemowego
Gdy aplikacja jest wyświetlana od krawędzi do krawędzi, jej tło może być widoczne za paskami systemu, dlatego może być konieczne dostosowanie kolorów ikon paska systemu, aby uzyskać lepszy kontrast.
Aby zmienić ikony na pasku stanu na jasne lub ciemne, użyj WindowInsetsControllerCompat:
// Set status bar icons to dark. WindowCompat.getInsetsController(window, window.decorView) .isAppearanceLightStatusBars = true // Set status bar icons to light. WindowCompat.getInsetsController(window, window.decorView) .isAppearanceLightStatusBars = false
Ochrona paska systemu
enableEdgeToEdge() udostępnia domyślne przezroczyste lub półprzezroczyste paski systemowe, ale możesz je dostosować. Zapoznaj się ze wskazówkami dotyczącymi projektowania pasków systemowych Androida i wskazówkami dotyczącymi projektowania aplikacji bez ramki, aby zdecydować, kiedy używać pasków przezroczystych, a kiedy półprzezroczystych.
Aby pasek nawigacyjny z 3 przyciskami był całkowicie przezroczysty, a nie półprzezroczysty, możesz wyłączyć wymuszanie kontrastu:
window.isNavigationBarContrastEnforced = false
Więcej informacji znajdziesz w artykule Informacje o ochronie paska systemu.