Platforma Android odpowiada za wyświetlanie interfejsu użytkownika 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 interfejs użytkownika nie był zasłonięty przez interfejs systemu.

W Androidzie 14 (poziom interfejsu API 34) i starszych interfejs aplikacji nie jest domyślnie wyświetlany pod paskami systemowymi i wycięciami w ekranie.
W Androidzie 15 (poziom interfejsu API 35) i nowszych aplikacja jest rysowana 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ść od krawędzi do krawędzi, oraz o tym, jak używać interfejsów API wstawek do animowania interfejsu użytkownika i zapewnienia, że elementy interfejsu systemowego nie zasłaniają treści aplikacji.
.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 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 ramkach paska stanu podajesz rozmiar i położenie paska stanu, a w ramkach 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 systemu, 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 podpisów. |
|
Wstawki paska systemowego, gdy są widoczne. Jeśli paski systemu są obecnie ukryte (z powodu przejścia w tryb pełnoekranowy), wstawki głównego paska systemu 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, którą zajmowała klawiatura programowa przed animacją bieżącej klawiatury. |
|
Wstawki opisujące ilość miejsca, jaką zajmie klawiatura programowa po animacji klawiatury. |
|
Typ wstawek opisujących bardziej szczegółowe informacje o interfejsie nawigacji, podający ilość miejsca, w którym „dotknięcia” będą obsługiwane przez system, a nie aplikację. W przypadku przezroczystych pasków nawigacji z obsługą gestów niektóre elementy aplikacji można dotykać za pomocą interfejsu nawigacji systemu. |
|
Elementy, które można dotknąć, są wstawione, gdy są widoczne. Jeśli elementy, które można kliknąć, są obecnie ukryte (z powodu przejścia w tryb pełnoekranowy), w ramkach głównych elementów, które można kliknąć, nie będzie żadnych elementów, ale same ramki będą widoczne. |
|
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, 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 dolnego paska, karuzeli lub gier). - Użyj
WindowInsets.safeContent
jako kombinacjiWindowInsets.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 materiałach
- Migracja
CoordinatorLayout
do Nowego posta - Inne kwestie