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

Począwszy od Androida 10 (interfejs API na poziomie 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:

  • Rozciągnij zawartość aplikacji od krawędzi do krawędzi.
  • Obsługiwać gesty aplikacji, które powodują konflikt.

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

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

Aby wykorzystać dodatkową przestrzeń ekranu 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 aplikacji

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 wstecz, wskazując systemowi, które obszary 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 w przypadku gestu powrotu.

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 przesunięcia palcem w pobliżu obszarów gestów systemowych. W takich przypadkach gry mogą używać Window.setSystemGestureExclusionRects() do wykluczania obszarów, 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 umożliwia ponowne włączenie gestów systemowych przez przesunięcie palcem od dołu ekranu.

Aktualizowanie aplikacji w celu obsługi gestu przewidywania powrotu

Android 13 (poziom interfejsu API 33) wprowadza predykcyjny gest wstecz 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