Platforma Androida odpowiada za rysowanie interfejsu systemu, takiego jak pasek stanu i pasek nawigacyjny. Ten interfejs systemowy jest wyświetlany niezależnie od tego, z której aplikacji korzysta użytkownik.
WindowInsets dostarcza informacji o interfejsie systemu, aby aplikacja była wyświetlana we właściwym obszarze i nie była zasłonięta przez interfejs systemu.
Na Androidzie 14 (poziom interfejsu API 34) i starszych interfejs aplikacji nie jest domyślnie rysowany pod paskami systemu i wycięciami w ekranie.
Na Androidzie 15 (poziom API 35) i nowszych aplikacja jest wyświetlana pod paskami systemu i wycięciami w ekranie, gdy jest kierowana na pakiet SDK 35. Dzięki temu aplikacja może w pełni wykorzystać dostępne miejsce w oknie, co zwiększa wygodę użytkownika.
Wyświetlanie treści za interfejsem systemu nazywa się wyświetlaniem od krawędzi do krawędzi. Na tej stronie dowiesz się, jakie są różne rodzaje wstawek, jak wyświetlać treści od krawędzi do krawędzi i jak używać interfejsów API wstawek do animowania interfejsu i zapewniania, że treści aplikacji nie są zasłonięte przez elementy interfejsu systemu.
Podstawowe informacje o wstawkach
Gdy aplikacja działa w trybie od krawędzi do krawędzi, 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 nawigacyjnym, użytkownik może nie być w stanie go kliknąć.
Rozmiar interfejsu systemu i informacje o jego umiejscowieniu są określane za pomocą wstawek.
Każda część interfejsu systemu ma odpowiedni typ wstawki, który opisuje jej rozmiar i miejsce, w którym się znajduje. Na przykład wstawki paska stanu określają rozmiar i położenie paska stanu, a wstawki paska nawigacyjnego – rozmiar i położenie paska nawigacyjnego. Każdy typ wstawki składa się z 4 wymiarów pikseli: górnego, lewego, prawego i dolnego. Te wymiary określają, jak daleko interfejs systemu rozciąga się od odpowiednich stron okna aplikacji. Aby uniknąć nakładania się na ten typ interfejsu systemowego, interfejs aplikacji musi być przesunięty o tę wartość.
Te wbudowane typy odcięć Androida są dostępne w WindowInsets:
Wstawki opisujące paski stanu. Są to górne paski interfejsu systemu zawierające ikony powiadomień i inne wskaźniki. |
|
Wstawki paska stanu, gdy są widoczne. Jeśli paski stanu są ukryte (z powodu przejścia w tryb pełnoekranowy), główne wstawki paska stanu będą puste, ale te wstawki nie będą puste. |
|
Wstawki opisujące paski nawigacyjne. Są to paski interfejsu systemu po lewej, prawej lub dolnej stronie urządzenia, które opisują pasek aplikacji 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 aplikacji. |
|
Wstawki paska nawigacyjnego, gdy są widoczne. Jeśli paski nawigacyjne są ukryte (z powodu przejścia do trybu pełnoekranowego), wstawki głównego paska nawigacyjnego będą puste, ale te wstawki nie będą puste. |
|
Wstawka opisująca dekorację okna interfejsu systemu, jeśli znajduje się w oknie o dowolnym formacie, np. górny pasek tytułu. |
|
Wstawki paska napisów, gdy są widoczne. Jeśli paski podpisów są ukryte, główne wstawki paska podpisu będą puste, ale te wstawki nie będą puste. |
|
Połączenie wstawek paska systemu, które obejmują paski stanu, paski nawigacyjne i pasek podpisów. |
|
Wstawki paska systemowego, gdy są widoczne. Jeśli paski systemowe są ukryte (z powodu wejścia w tryb pełnoekranowy), główne wstawki paska systemowego będą puste, ale te wstawki nie będą puste. |
|
Wstawki opisujące ilość miejsca na dole, które zajmuje klawiatura ekranowa. |
|
Wstawki opisujące ilość miejsca zajmowanego przez klawiaturę ekranową przed bieżącą animacją klawiatury. |
|
Wstawki opisujące ilość miejsca, które klawiatura ekranowa zajmie po bieżącej animacji klawiatury. |
|
Typ wstawek zawierających bardziej szczegółowe informacje o interfejsie nawigacji, określających ilość miejsca, w którym „kliknięcia” będą obsługiwane przez system, a nie przez aplikację. W przypadku przezroczystych pasków nawigacyjnych z nawigacją przy użyciu gestów niektóre elementy aplikacji mogą być klikalne za pomocą interfejsu nawigacji systemowej. |
|
Wstawki elementów klikalnych, gdy są widoczne. Jeśli elementy klikalne są ukryte (z powodu przejścia w tryb pełnoekranowy), główne wstawki elementów klikalnych będą puste, ale te wstawki nie będą puste. |
|
Wstawki reprezentujące liczbę wstawek, w których system będzie przechwytywać gesty nawigacyjne. Aplikacje mogą ręcznie określać 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ą |
|
Odcięcia reprezentujące ilość miejsca potrzebnego, aby uniknąć nakładania się na wycięcie w ekranie (wycięcie lub otwór). |
|
Wstawki reprezentujące zakrzywione obszary wyświetlacza wodospadowego. Wyświetlacz wodospadowy ma zakrzywione obszary wzdłuż krawędzi ekranu, gdzie ekran zaczyna się zawijać wzdłuż boków urządzenia. |
Te typy są podsumowane przez 3 „bezpieczne” typy wcięć, 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 podstawowych wstawek platformy:
- Używaj
WindowInsets.safeDrawing, aby chronić treści, które nie powinny być rysowane pod interfejsem systemu. To najczęstsze zastosowanie wstawek: zapobieganie rysowaniu treści, które są (częściowo lub całkowicie) zasłonięte przez interfejs systemu. - Używaj
WindowInsets.safeGestures, aby chronić treści za pomocą gestów. Dzięki temu gesty systemowe nie kolidują z gestami aplikacji (np. w przypadku plansz dolnych, karuzel czy gier). - Używaj
WindowInsets.safeContentjako kombinacjiWindowInsets.safeDrawingiWindowInsets.safeGestures, aby mieć pewność, że treści nie nakładają się wizualnie i nie kolidują z gestami.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- Komponenty i układy Material Design
- Migracja
CoordinatorLayoutdo Compose - Inne kwestie, które warto wziąć pod uwagę