Wycięcie w ekranie to na niektórych urządzeniach wycięcie w ekranie. na różnych powierzchniach. Umożliwia korzystanie z usług najnowszych i zapewnia przestrzeń dla ważne czujniki z przodu urządzenia.
![Przykład wycięcia w trybie pionowym](https://developer.android.com/static/develop/ui/compose/images/system/cutouts_example_portrait.png?authuser=0000&hl=pl)
![Przykład wycięcia w trybie poziomym](https://developer.android.com/static/develop/ui/compose/images/system/cutouts_example_landscape.png?authuser=0000&hl=pl)
Android obsługuje wycięcia w ekranie na urządzeniach z Androidem 9 (poziom interfejsu API 28) oraz wyższe. Producenci urządzeń mogą jednak stosować wycięcia w ekranie urządzeniach z Androidem 8.1 lub starszym.
Na tej stronie dowiesz się, jak wdrożyć obsługę urządzeń z wycięciami w tworzenie wiadomości, w tym informacje o korzystaniu z obszaru wycięcia, czyli od krawędzi do krawędzi prostokąt z wycięciem.
Domyślna wielkość liter
Domyślnie wycięcia w ekranie są zawarte w informacjach o wkładkach okien. Z tego powodu aplikacja nie rysuje w obszarach wycięcia w ekranie, gdy jak tworzyć aplikacje brzegowe do brzegu sieci.
Jeśli na przykład używasz
Modifier.windowInsetsPadding(WindowInsets.safeContent)
lub Modifier.windowInsetsPadding(WindowInsets.safeDrawing)
, Twoja aplikacja
nie rysuje automatycznie w obszarach, w których znajduje się wycięcie.
WindowInsets.safeContent
i WindowInsets.safeDrawing
oba zawierają informacje o wycięcia w ekranie i nie będą rysowane tam, gdzie wycięcie w urządzeniu
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) WindowCompat.setDecorFitsSystemWindows(window, false) setContent { Box(Modifier.windowInsetsPadding(WindowInsets.safeContent)) { // Any composable inside here will avoid drawing behind cutouts } } }
Aby jeszcze bardziej dostosować to działanie, musisz obsługiwać informacje o wycięciu siebie.
Obsługa informacji o wycięciu ręcznie
Możesz radzić sobie z wycięciami na następujące sposoby:
Używasz
WindowInsets.displayCutout
Ustawienie w pliku manifestu motywu za pomocą opcji
android:windowLayoutInDisplayCutoutMode
Automatyczne ustawianie opcji na
Window
za pomocą funkcjiwindow.attributes.layoutInDisplayCutoutMode
Uzyskiwanie dostępu do obiektu wycięcia
Path
za pomocą narzędziaLocalView.current.rootWindowInsets.displayCutout
W przypadku tworzenia wiadomości zalecamy ustawienie pola windowLayoutInDisplayCutoutMode
na
default
w ogólnym motywie, a następnie wykorzystaj WindowInsets.displayCutout
obsługuje wstawki w plikach kompozycyjnych:
Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) { drawRect(Color.Red, style = Stroke(2.dp.toPx())) }
To podejście umożliwia uwzględnienie dopełnienia displayCutout
tam, gdzie jest to wymagane,
lub zignorować je, gdy nie jest wymagane.
Możesz też zastosować te same ustawienia, które stosuje się przy wycięciu widoków
dokumentacja opisana przez ustawienie
wybierz motyw aktywności android:windowLayoutInDisplayCutoutMode
na inny
lub ustawiając atrybut window za pomocą parametru
window.attributes.layoutInDisplayCutoutMode =
LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
Następnie zostanie zastosowany tryb wycięcia.
w całej aktywności i nie można nią kontrolować poszczególnych elementów kompozycyjnych.
Aby uwzględnić wycięcie w ekranie tylko w niektórych funkcjach kompozycyjnych, użyj funkcji
WindowInset.displayCutout
Ten interfejs API umożliwia dostęp do wycięcia
informacji, gdy są wymagane.
Sprawdzone metody
Podczas pracy z wycięciami w ekranie weź pod uwagę te kwestie:
- Zwróć uwagę na rozmieszczenie kluczowych elementów interfejsu. Nie pozwól, aby zasłaniają ważny tekst, elementy sterujące i inne informacje.
- Nie umieszczaj ani nie rozszerzaj żadnych elementów interaktywnych, które wymagają precyzyjnego dotyku. do obszaru wycięcia. Czułość ekranu może być niższa i miejsca wycięcia.
- Przy przestrzeganiu wskazówek od krawędzi do krawędzi informacje o wycięciu są uwzględniane w
wektory
safeDrawing
/safeContent
. - Gdy tylko jest to możliwe, używaj zasady
Modifier.windowInsetsPadding(WindowInsets.safeDrawing)
aby określić odpowiednie dopełnienie. Unikaj kodowanie na stałe wysokości paska stanu, ponieważ może to prowadzić do nakładania się lub cięcia. treści.
Sprawdzanie sposobu renderowania treści za pomocą wycięć
Przetestuj wszystkie ekrany i sposób działania aplikacji. Przetestuj na urządzeniach z różne typy wycięć. Jeśli nie masz urządzenia z możesz symulować typowe konfiguracje wycięcia na dowolnym urządzeniu i emulatorze z Androidem 9 lub nowszym, wykonując te czynności:
- Włącz Opcje programisty.
- Na ekranie Opcje programisty przewiń w dół do sekcji Rysunek. i wybierz Symuluj wyświetlacz z wycięciem.
- Wybierz typ wycięcia.
Rysunek 3. Użyj Opcji programisty, aby przetestować renderowanie treści.
Polecane dla Ciebie
- Uwaga: tekst linku wyświetla się, gdy JavaScript jest wyłączony
- Wstawki w oknach w funkcji tworzenia wiadomości
- Modyfikatory graficzne
- Styl akapitu