Platforma Android odpowiada za wyświetlanie interfejsu systemu, takiego jak pasek stanu i pasek nawigacyjny. Ten interfejs systemu jest wyświetlany niezależnie od tego, z której aplikacji korzysta użytkownik.
WindowInsets
zawiera informacje o interfejsie użytkownika systemu, aby aplikacja rysowała w odpowiednim miejscu i nie była przysłonięta przez interfejs systemu.

W Androidzie 14 (poziom interfejsu API 34) i starszych interfejs aplikacji nie jest domyślnie wyświetlany pod paskami systemowymi ani wycięciami w ekranie.
W Androidzie 15 (poziom interfejsu API 35) i nowszych aplikacja jest wyświetlana pod paskami systemu i wycięciami ekranu, gdy jest kierowana na pakiet SDK 35. Dzięki temu użytkownicy będą mogli wygodniej korzystać z aplikacji, która będzie mogła w pełni wykorzystać dostępne miejsce na ekranie.
Wyświetlanie treści za interfejsem systemu nazywa się wypełnianiem ekranu. Na tej stronie dowiesz się więcej o różnych typach wstawek, o tym, jak przejść do trybu pełnoekranowego, oraz o tym, jak używać interfejsów API wstawek do animowania interfejsu użytkownika i unikania zasłaniania zawartości aplikacji przez elementy interfejsu systemu.
Podstawy wstawek
Gdy aplikacja zajmuje cały ekran, musisz zadbać o to, aby ważne treści i interakcje nie były zasłonięte przez interfejs systemu. Jeśli na przykład przycisk znajduje się za paskiem nawigacji, użytkownik może nie mieć możliwości jego kliknięcia.
Rozmiar interfejsu użytkownika systemu i informacje o jego umieszczeniu są określane za pomocą insetów.
Każda część interfejsu systemu ma odpowiedni typ wstawki, który opisuje jej rozmiar i miejsce umieszczenia. Na przykład w przypadku wstawek paska stanu podajemy rozmiar i położenie paska stanu, a w przypadku wstawek paska nawigacji – rozmiar i położenie paska nawigacji. Każdy typ wstawki składa się z 4 wymiarów pikseli: góra, lewo, prawo i dół. Te wymiary określają, jak daleko interfejs systemu sięga od odpowiednich stron okna aplikacji. Aby uniknąć nakładania się na ten typ interfejsu systemu, interfejs aplikacji musi być wsunięty o tę odległość.
Te wbudowane typy wstawek na Androidzie są dostępne w WindowInsets
:
Wstawki opisujące paski stanu. To górne paski interfejsu systemu zawierające ikony powiadomień i inne wskaźniki. |
|
Pasek stanu jest wsunięty, gdy jest widoczny. Jeśli paski stanu są obecnie ukryte (z powodu przejścia do trybu pełnoekranowego), wstawki głównego paska stanu będą puste, ale nie będą puste wstawki paska stanu. |
|
Wstawki opisujące paski nawigacyjne. Są to paski interfejsu systemu po lewej, prawej lub dolnej stronie urządzenia, które opisują pasek zadań lub ikony nawigacyjne. Mogą się one zmieniać w czasie działania aplikacji w zależności od preferowanej przez użytkownika metody nawigacji i interakcji z paskiem zadań. |
|
Wstawki paska nawigacyjnego, gdy są widoczne. Jeśli paski nawigacyjne są obecnie ukryte (z powodu przejścia do trybu pełnoekranowego), wstawki głównego paska nawigacyjnego będą puste, ale nie będą puste. |
|
Wstawka opisująca dekorację okna interfejsu użytkownika, jeśli jest to okno swobodnej formy, np. górny pasek tytułu. |
|
Pasek napisów jest wsunięty, gdy jest widoczny. Jeśli paski napisów są obecnie ukryte, wstawki głównego paska napisów będą puste, ale nie będą puste. |
|
Zbiór elementów paska systemu, w tym paski stanu, paski nawigacyjne i paski nagłówków. |
|
Wstawki paska systemowego, gdy są widoczne. Jeśli paski systemowe są obecnie ukryte (z powodu przejścia w tryb pełnoekranowy), wstawki głównego paska systemowego będą puste, ale nie będą puste. |
|
Wstawki opisujące ilość miejsca na dole, którą zajmuje klawiatura programowa. |
|
Wstawki opisujące ilość miejsca, jaką zajmowała klawiatura programowa przed animacją bieżącej klawiatury. |
|
Wstawki opisujące ilość miejsca, jaką zajmie klawiatura programowa po animacji bieżącej klawiatury. |
|
Rodzaj wstawek opisujących bardziej szczegółowe informacje o interfejsie nawigacji, podając ilość miejsca, w którym „dotknięcia” będą obsługiwane przez system, a nie aplikację. W przypadku przezroczystych pasków nawigacji z gestami niektóre elementy aplikacji można dotknąć za pomocą interfejsu nawigacji systemu. |
|
Elementy, które można kliknąć, są wstawione, gdy są widoczne. Jeśli elementy, które można kliknąć, są obecnie ukryte (z powodu przejścia w tryb pełnoekranowy), wstawione elementy główne będą puste, ale wstawione elementy będą niepuste. |
|
Wstawki reprezentujące liczbę wstawek, w których system przechwytuje gesty nawigacyjne. Aplikacje mogą ręcznie określić obsługę ograniczonej liczby tych gestów za pomocą |
|
Podzbiór gestów systemowych, które zawsze będą obsługiwane przez system i których nie można wyłączyć za pomocą |
|
Wstawki przedstawiające odstęp potrzebny, aby uniknąć nakładania się na wycięcie w ekranie (notch lub pinhole). |
|
Wstawki przedstawiające zakrzywione obszary wyświetlania typu kaskada. Wyświetlacz typu wodospad ma zaokrąglone obszary na krawędziach ekranu, gdzie ekran zaczyna się zawijać wzdłuż boków urządzenia. |
Te typy są podsumowane przez 3 „bezpieczne” typy wstawek, które zapewniają, że treści nie są zasłonięte:
Te „bezpieczne” typy wstawek chronią treści na różne sposoby w zależności od wstawek na platformie:
- Użyj
WindowInsets.safeDrawing
, aby chronić treści, które nie powinny być wyświetlane pod interfejsem systemu. Jest to najczęstsze zastosowanie wstawek: zapobieganie zasłanianiu treści przez interfejs systemu (częściowo lub całkowicie). - Użyj
WindowInsets.safeGestures
, aby chronić treści za pomocą gestów. Zapobiega to konfliktom gestów systemowych z gestami w aplikacji (np. w przypadku karuzel na dole ekranu lub w grach). - Użyj właściwości
WindowInsets.safeContent
jako kombinacji właściwościWindowInsets.safeDrawing
iWindowInsets.safeGestures
, aby upewnić się, że treści nie nakładają się wizualnie i nie nakładają się za pomocą gestów.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy obsługa JavaScript jest wyłączona
- Komponenty i układy w Material Design
- Migracja
CoordinatorLayout
do tworzenia wiadomości - Inne kwestie