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: