Zapewnienie zgodności z nawigacją przy użyciu gestów

Począwszy od Androida 10 (poziom interfejsu API 29), system Android obsługuje w pełni nawigację opartą na gestach. Aby aplikacje były zgodne z tą funkcją, deweloperzy muszą wykonać 2 czynności:

  • Rozszerz zawartość aplikacji od krawędzi do krawędzi.
  • Obsługa gestów aplikacji powodujących konflikt.

Dodatkowo Android 13 (API na poziomie 33) wprowadza gest predykcyjny powrotu na urządzenia z Androidem, takie jak telefony, urządzenia z dużym ekranem i urządzenia składane. Jest to część wieloletniej wersji. Deweloperzy aplikacji mogą podjąć działania, aby zapewnić obsługę gestu powrotu z przewidywaniem.

Wyświetlanie treści aplikacji od krawędzi do krawędzi

Aby wykorzystać dodatkową przestrzeń na ekranie udostępnianą przez pływający pasek nawigacyjny, musisz wprowadzić w aplikacji pewne zmiany.

Więcej informacji znajdziesz w artykule Wyświetlanie treści od krawędzi do krawędzi w aplikacji.

Rozwiązywanie konfliktów między gestami w aplikacjach

Model nawigacji gestami może powodować konflikty z gestami, które były wcześniej używane przez deweloperów aplikacji. W związku z tym może być konieczne dostosowanie interfejsu użytkownika aplikacji.

Konflikty z gestami cofania

Nowy gest systemowy do cofania to przesunięcie palcem do wewnątrz od lewej lub prawej krawędzi ekranu. Może to kolidować z elementami nawigacyjnymi aplikacji w tych obszarach. Aby zachować funkcjonalność elementów na lewej i prawej krawędzi ekranu, możesz zrezygnować z gestu cofania, wskazując systemowi, które regiony mają odbierać dane wejściowe dotyku. Możesz to zrobić, przekazując wartość List<Rect> do interfejsu View.setSystemGestureExclusionRects() API wprowadzonego w Androidzie 10. Ta metoda jest też dostępna w ViewCompat od androidx.core:core:1.1.0-dev01.

Na przykład:

Kotlin

var exclusionRects = listOf(rect1, rect2, rect3)

fun onLayout(
        changedCanvas: Boolean, left: Int, top: Int, right: Int, bottom: Int) {
  // Update rect bounds and the exclusionRects list
  setSystemGestureExclusionRects(exclusionRects)
}

fun onDraw(canvas: Canvas) {
  // Update rect bounds and the exclusionRects list
  setSystemGestureExclusionRects(exclusionRects)
}

Java

List<Rect> exclusionRects;

public void onLayout(
        boolean changedCanvas, int left, int top, int right, int bottom) {
    // Update rect bounds and the exclusionRects list
    setSystemGestureExclusionRects(exclusionRects);
}

public void onDraw(Canvas canvas) {
    // Update rect bounds and the exclusionRects list
    setSystemGestureExclusionRects(exclusionRects);
}

Konflikty z gestami strony głównej lub szybkiego przełączania

Nowe gesty systemowe dotyczące ekranu głównego i szybkiego przełączania obejmują przesuwanie palcem u dołu ekranu w miejscu, w którym wcześniej znajdował się pasek nawigacyjny. Aplikacje nie mogą zrezygnować z tych gestów, tak jak mogą to zrobić w przypadku gestu wstecz.

Aby złagodzić ten problem, w Androidzie 10 wprowadziliśmy interfejs API WindowInsets.getMandatorySystemGestureInsets(), który informuje aplikacje o progach rozpoznawania dotyku.

Gry i inne aplikacje inne niż View

Gry i inne aplikacje, które nie mają hierarchii widoków, często wymagają od użytkownika przesuwania palcem w pobliżu obszarów gestów systemowych. W takich przypadkach gry mogą używać Window.setSystemGestureExclusionRects(), aby wykluczać obszary, które pokrywają się z obszarami zarezerwowanymi dla gestów systemowych. Gry powinny wykluczać te obszary tylko w razie potrzeby, np. podczas rozgrywki.

Jeśli gra wymaga od użytkownika przesuwania palcem w pobliżu obszaru gestu powrotu do ekranu głównego, aplikacja może poprosić o wyświetlenie w trybie pełnoekranowym. Wyłącza to gesty systemowe, gdy użytkownik wchodzi w interakcję z grą, ale pozwala mu ponownie włączyć gesty systemowe, przesuwając palcem od dołu ekranu.

Aktualizowanie aplikacji w celu obsługi gestu przewidywania powrotu

Android 13 (poziom 33 interfejsu API) wprowadza gest predykcyjny powrotu na urządzeniach z Androidem, takich jak telefony, urządzenia z dużym ekranem i urządzenia składane. Gest predykcyjnego cofania jest częścią wieloletniego programu wdrażania. Po pełnym wdrożeniu ta funkcja umożliwia użytkownikom wyświetlenie podglądu miejsca docelowego lub innego wyniku gestu przejścia wstecz, zanim w pełni go wykonają. Dzięki temu mogą zdecydować, czy chcą kontynuować, czy pozostać na bieżącym ekranie.

Więcej informacji znajdziesz w artykule Dodawanie obsługi gestu przewidywania powrotu.

Dodatkowe materiały

Więcej informacji o nawigacji gestami znajdziesz w tych artykułach:

Posty na blogu

Filmy