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

Począwszy od Androida 10 (poziom interfejsu API 29) system Android obsługuje nawigację w pełni przy użyciu gestów. Deweloperzy aplikacji muszą zrobić 2 czynności, aby mieć pewność, że ich aplikacje są zgodne z tą funkcją:

  • Rozszerz zawartość aplikacji od krawędzi do krawędzi.
  • Radzenie sobie z gestami w aplikacji, które powodują konflikty.

Oprócz tego Android 13 (poziom interfejsu API 33) wprowadza przewidywany gest cofania w przypadku urządzeń z Androidem, takich jak telefony, duże ekrany i urządzenia składane. Funkcja ta jest dostępna w ramach wieloletniej wersji. Deweloperzy aplikacji mogą podjąć odpowiednie kroki, aby upewnić się, że aplikacje obsługują ten gest.

Zapewnianie wysokiej jakości treści w aplikacji

Aby wykorzystać dodatkową przestrzeń na ekranie dostępną przez pływający pasek nawigacyjny, musisz skonfigurować określone zmiany w aplikacji.

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

Obsługa gestów w aplikacji będących w konflikcie

Model nawigacji przy użyciu gestów może kolidować z gestami używanymi wcześniej przez deweloperów aplikacji. W rezultacie może być konieczne dostosowanie interfejsu aplikacji.

Konflikt gestów cofania

Nowy gest systemowy dotyczący cofania się to przesunięcie do wewnątrz od lewej lub prawej krawędzi ekranu. Może to zakłócać działanie elementów nawigacyjnych aplikacji w tych obszarach. Aby utrzymać funkcjonalność elementów na lewej i prawej krawędzi ekranu, zrezygnuj z gestów selektywnych cofania, wskazując systemowi, które regiony mają odbierać dane dotykowe. Możesz to zrobić, przekazując parametr List<Rect> do interfejsu API View.setSystemGestureExclusionRects() 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);
}

Konflikt z gestami ekranu głównego lub gestami szybkiego przełączania

Nowe gesty systemowe w przypadku ekranu głównego i szybkiego przełączania obejmują przesuwanie palcem u dołu ekranu w miejscu zajmowanym wcześniej przez pasek nawigacyjny. Aplikacje nie mogą zrezygnować z tych gestów, jak za pomocą gestu cofania.

Aby temu zapobiec, Android 10 wprowadza interfejs API WindowInsets.getMandatorySystemGestureInsets(), który informuje aplikacje o progach rozpoznawania dotyku.

Gry i inne aplikacje niewymagające wyświetlania

Gry i inne aplikacje, które nie mają hierarchii widoku, często wymagają od użytkownika przesunięcia palcem w pobliżu systemowych obszarów gestów. W takich przypadkach gry mogą używać Window.setSystemGestureExclusionRects(), aby wykluczać obszary, które pokrywają się z obszarami zarezerwowanymi na gesty systemowe. Pamiętaj, aby wykluczać te obszary tylko w razie konieczności, np. podczas rozgrywki.

Jeśli gra wymaga od użytkownika przesunięcia palcem w pobliżu obszaru gestów domowych, aplikacja może poprosić o umieszczenie jej w trybie pojemnym. Wyłącza to gesty systemowe, gdy użytkownik wchodzi w interakcję z grą, ale umożliwia użytkownikowi ponowne włączenie gestów systemowych przez przesunięcie palcem od dołu ekranu.

Zaktualizuj aplikację, aby obsługiwać gest przewidywanego przejścia wstecz

Android 13 (poziom interfejsu API 33) wprowadza gest cofania się w tle na urządzeniach z Androidem, takich jak telefony, duże ekrany i urządzenia składane. Predykcyjne gesty wsteczne są częścią wersji wieloletniej. Po pełnym zaimplementowaniu ta funkcja pozwala użytkownikom wyświetlić podgląd miejsca docelowego lub innego wyniku gestu cofnięcia, zanim go w pełni wykona, co pozwoli im zdecydować, czy chcą kontynuować, czy pozostać w bieżącym widoku.

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

Dodatkowe materiały

Więcej informacji o nawigacji przy użyciu gestów:

Posty na blogu

Filmy