Przewidywane przejście wstecz i animacje systemowe są domyślnie włączone. Jeśli aplikacja przechwytuje zdarzenie cofnięcia, a nie została jeszcze przeniesiona na przewidywane przejście wstecz, zaktualizuj ją, aby używała obsługiwanych interfejsów API do przechodzenia wstecz.
Włącz domyślne animacje systemowe
Animacje systemowe powrotu do ekranu głównego, przechodzenia między aktywnościami i przechodzenia między zadaniami są dostępne na urządzeniach z Androidem 15 lub nowszym w przypadku aplikacji, które zostały przeniesione do obsługiwanych interfejsów API obsługi przycisku wstecz.
- Powrót do ekranu głównego: powoduje powrót użytkownika do ekranu głównego.
- Przejścia między aktywnościami: przejścia między aktywnościami w aplikacji.
- Między zadaniami: przejścia między zadaniami.
Te animacje są domyślnie włączone na Androidzie 15 lub nowszym. Na urządzeniach z Androidem 13 lub 14 użytkownicy mogą je włączyć w Opcjach programisty.
Aby uzyskać animacje systemowe, zaktualizuj zależność AndroidX Activity do wersji 1.6.0 lub nowszej.
Włączanie przewidywanego przejścia wstecz za pomocą Navigation Compose
Aby używać przewidywanego przejścia wstecz w Navigation Compose, upewnij się, że używasz biblioteki navigation-compose w wersji 2.8.0 lub nowszej.
Navigation Compose automatycznie przechodzi między ekranami, gdy użytkownik przesunie palcem wstecz:
Podczas nawigacji możesz tworzyć niestandardowe przejścia za pomocą popEnterTransition i popExitTransition. Po zastosowaniu do NavHost te modyfikatory pozwalają określić, jak mają być animowane ekrany wejścia i wyjścia. Możesz ich używać do tworzenia różnych efektów, takich jak skalowanie, zanikanie czy przesuwanie.
W tym przykładzie scaleOut jest używany w popExitTransition do zmniejszania ekranu, który użytkownik opuszcza, gdy wraca do poprzedniego ekranu. Dodatkowo parametr transformOrigin określa punkt, wokół którego odbywa się animacja skalowania. Domyślnie jest to środek ekranu (0.5f, 0.5f).
Możesz dostosować tę wartość, aby skalowanie zaczynało się od innego punktu.
NavHost( navController = navController, startDestination = Home, popExitTransition = { scaleOut( targetScale = 0.9f, transformOrigin = TransformOrigin(pivotFractionX = 0.5f, pivotFractionY = 0.5f) ) }, popEnterTransition = { EnterTransition.None }, modifier = modifier, )
Ten kod daje taki wynik:
popEnterTransition i popExitTransition sterują animacjami podczas usuwania elementów ze stosu wstecznego, na przykład za pomocą gestu cofania. Możesz też użyć funkcji enterTransition i exitTransition, aby zdefiniować animacje wejścia i wyjścia dla elementów kompozycyjnych, nie tylko w przypadku przewidywanego przejścia wstecz. Jeśli ustawisz tylko enterTransition i exitTransition, będą one używane zarówno do zwykłej nawigacji, jak i do wyskakiwania ze stosu wstecznego. Jednak użycie popEnterTransition i popExitTransition pozwala tworzyć różne animacje przechodzenia wstecz.
Integracja z przejściami elementów współdzielonych
Przejścia elementów wspólnych zapewniają płynne połączenie wizualne między elementami kompozycyjnymi ze wspólną treścią, często używanymi do nawigacji.
Aby używać elementów współdzielonych z Navigation Compose, zapoznaj się z artykułem Przewidywane przejście wstecz z elementami współdzielonymi.
Obsługa przewidywanego przejścia wstecz za pomocą komponentów Material Compose
Wiele komponentów w bibliotece Material Compose zostało zaprojektowanych tak, aby bezproblemowo współpracować z gestami przewidywanego przejścia wstecz. Aby włączyć animacje przewidywanego przejścia wstecz w tych komponentach, uwzględnij w projekcie najnowszą zależność Material3 (androidx.compose.material3:material3-*:1.3.0 lub nowszą).
Komponenty Material Design, które obsługują animacje przewidywanego przejścia wstecz, to m.in.:
SearchBarModalBottomSheetModalDrawerSheet/DismissibleDrawerSheetModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar i ModalBottomSheet automatycznie animują gesty przewidywanego przejścia wstecz. ModalNavigationDrawer, ModalDrawerSheet, DismissibleDrawerSheet i DismissibleNavigationDrawer wymagają przekazania drawerState do odpowiednich funkcji kompozycyjnych zawartości arkusza.
Testowanie animacji gestu przewidywanego przejścia wstecz
Jeśli nadal używasz Androida 13 lub 14, możesz przetestować animację powrotu do ekranu głównego.
Aby przetestować tę animację, wykonaj te czynności:
- Na urządzeniu otwórz Ustawienia > System > Opcje programisty.
- Wybierz Animacje przewidywanego przejścia wstecz.
- Uruchom zaktualizowaną aplikację i użyj gestu wstecz, aby zobaczyć, jak działa.
Na Androidzie 15 i nowszych ta funkcja jest domyślnie włączona.
Dodatkowe materiały
- Dodawanie animacji przewidywanego przejścia wstecz – ćwiczenie w Codelabs
- Zaawansowane animacje układu w filmie o Compose