Począwszy od Androida 10 (poziom interfejsu API 29), system Android w pełni obsługuje nawigacji przy użyciu gestów. Deweloperzy aplikacji muszą zrobić 2 rzeczy, aby mieć pewność, ich aplikacje są zgodne z tą funkcją:
- Rozciągnij zawartość aplikacji od krawędzi do krawędzi.
- Obsługa gestów aplikacji, które się wykluczają.
Oprócz tego Android 13 (poziom API 33) wprowadza przewidujący gest wstecz na Androidzie. urządzeń takich jak telefony, duże ekrany i urządzenia składane, które wchodzą w skład wersji. Deweloperzy aplikacji mogą podjąć działania, aby ich aplikacje obsługiwały przewidujący gest wstecz.
Zapewnianie najwyższej jakości treści w aplikacji
Aby wykorzystać dodatkową przestrzeń ekranu dostępną dla aplikacji pływającej paska nawigacyjnego, musisz skonfigurować określone zmiany w aplikacji.
Więcej informacji znajdziesz w artykule Wyświetlanie treści od krawędzi do krawędzi w aplikacji.
Obsługa gestów w aplikacji będących w konflikcie
Model nawigacji przy użyciu gestów może kolidować z wcześniejszymi gestami używane przez deweloperów aplikacji. W efekcie może być konieczne dostosowanie interfejsu aplikacji.
Konflikty z gestem wstecz
Nowy gest systemowy dotyczący cofania się to przesunięcie do wewnątrz od lewej lub
przy prawej krawędzi ekranu. Może to zakłócać działanie elementów nawigacji aplikacji w tych obszarach. Aby zachować funkcjonalność elementów po lewej i po prawej stronie ekranu, wyklucz gest wstecz, wskazując systemowi, które obszary mają rozpoznawać dotyk. Aby to zrobić, prześlij obiekt List<Rect>
do interfejsu View.setSystemGestureExclusionRects()
API wprowadzonego w Androidzie 10. Od androidx.core:core:1.1.0-dev01
ta metoda jest też dostępna w języku ViewCompat
.
Na przykład:
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) }
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 gestem wracania do ekranu głównego lub szybkiego przełączania
Nowe gesty systemowe dotyczące ekranu głównego i szybkiego przełączania wymagają przesunięcia palcem w dół 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 wstecz.
Aby rozwiązać ten problem, w Androidzie 10 wprowadzono interfejs API WindowInsets.getMandatorySystemGestureInsets()
, który informuje aplikacje o progach wykrywania dotyku.
Gry i inne aplikacje niewymagające wyświetlania
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ą korzystać z funkcji
Window.setSystemGestureExclusionRects()
, by wykluczyć obszary nakładające się na obszary zarezerwowane na gesty systemowe. Twórcy gier muszą pamiętać, aby wykluczać te obszary tylko wtedy, gdy jest to konieczne, np. podczas rozgrywki.
Jeśli gra wymaga od użytkownika przesunięcia palcem w pobliżu obszaru gestów w domu, aplikacja może żądania rozmieszczenia w trybie pojemnym. Spowoduje to wyłączenie gestów systemowych podczas interakcji z grą, ale użytkownik będzie mógł je ponownie włączyć, przesuwając palcem od dołu ekranu.
Zaktualizuj aplikację, aby obsługiwać gest przewidywanego przejścia wstecz
Android 13 (poziom API 33) wprowadza przewidujący gest wstecz na urządzeniach z Androidem, takich jak telefony, urządzenia z dużym ekranem i urządzenia składane. Wskazanie wstecz jest częścią wieloletniej aktualizacji. Po pełnym wdrożeniu ta funkcja pozwala użytkownikom wyświetlić podgląd miejsca docelowego lub innego wyniku gestu cofania, w pełni je kończą, pozwalając im zdecydować, czy chcą kontynuować, czy zostawić w bieżącym widoku.
Więcej informacji znajdziesz w artykule Dodawanie obsługi przewidującego gestu wstecz.
Dodatkowe materiały
Więcej informacji o nawigacji przy użyciu gestów: