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

Od Androida 10 (poziom API 29) system Android obsługuje w pełni nawigację opartą na gestach. Aby mieć pewność, że aplikacje są 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 predykcyjny powrotu 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 powrotu, 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 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 predykcyjny Wstecz jest częścią wieloletniej wersji. Po pełnym wdrożeniu ta funkcja umożliwi użytkownikom wyświetlanie podglądu miejsca docelowego lub innego wyniku gestu przejścia wstecz, zanim w pełni go wykonają. Dzięki temu będą mogli 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