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

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

  • Rozciągnij zawartość aplikacji od krawędzi do krawędzi.
  • Rozwiąż konflikt gestów w aplikacji.

Ponadto w Androidzie 13 (poziom interfejsu API 33) wprowadzono przewidywany gest wsteczny na urządzeniach z Androidem, takich jak telefony, duże ekrany i urządzenia składane. Jest to część wieloletniej wersji. Deweloperzy aplikacji mogą podjąć odpowiednie kroki, aby zapewnić, że ich aplikacje obsługują gest przewidywanego przejścia wstecz.

Udostępnianie treści w aplikacji od krawędzi do krawędzi

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 sekcji Wyświetlanie treści od krawędzi do krawędzi w aplikacji.

Obsługa gestów powodujących konflikty w aplikacjach

Model nawigacji przy użyciu gestów może kolidować z gestami, których używali wcześniej deweloperzy aplikacji. W związku z tym może być konieczne dostosowanie interfejsu aplikacji.

Konflikty z gestami cofania

Nowy gest systemowy dotyczący tyłu to przesunięcie do wewnątrz od lewej lub prawej krawędzi ekranu. Może to zakłócać elementy nawigacji w tych obszarach. Aby zachować funkcjonalność elementów znajdujących się przy lewej i prawej krawędzi ekranu, wyłącz gest cofania, wskazując systemowi, które regiony mają otrzymywać dotykowe wprowadzanie danych. Możesz to zrobić, przekazując List<Rect> do interfejsu API View.setSystemGestureExclusionRects() wprowadzonego w Androidzie 10. Od androidx.core:core:1.1.0-dev01 ta metoda jest również dostępna w ViewCompat.

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 ekranu głównego lub szybkiego przełączania

Nowe gesty systemowe dotyczące ekranu głównego i szybkiego przełączania obejmują przesuwanie palcem u dołu ekranu w obszarze zajmowanym wcześniej przez pasek nawigacyjny. Aplikacje nie mogą zrezygnować z tych gestów, jak można to zrobić, wykonując gest cofania.

Aby rozwiązać ten problem, Android 10 wprowadza interfejs API WindowInsets.getMandatorySystemGestureInsets(), który informuje aplikacje o progach rozpoznawania dotyku.

Gry i inne aplikacje niewyświetlające się

Gry i inne aplikacje, które nie mają hierarchii widoków, często wymagają od użytkownika przesunięcia palcem w pobliżu systemowych obszarów gestów. W takich przypadkach gry mogą używać parametru Window.setSystemGestureExclusionRects(), aby wykluczać obszary, które pokrywają się z obszarami zarezerwowanymi dla gestów systemowych. Gry muszą wykluczać te obszary tylko wtedy, gdy jest to konieczne, na przykład podczas rozgrywki.

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

Zaktualizuj aplikację, aby obsługiwać gest przewidywania tyłu

Android 13 (poziom interfejsu API 33) umożliwia przewidywanie gestu wstecznego na urządzeniach z Androidem, takich jak telefony, duże ekrany czy urządzenia składane. Przewidywanie wsteczne jest częścią wersji wieloletniej. Po pełnym wdrożeniu ta funkcja pozwala użytkownikom wyświetlić podgląd miejsca docelowego lub innego wyniku gestu cofania, zanim wykonają go w pełni. Dzięki temu mogą zdecydować, czy chcą kontynuować, czy pozostać w bieżącym widoku.

Więcej informacji znajdziesz w sekcji Dodawanie obsługi gestu przewidywanego przejścia wstecz.

Dodatkowe materiały

Więcej informacji o nawigacji przy użyciu gestów znajdziesz w tych artykułach:

Posty na blogu

Filmy