Przewidywane przejście wstecz i animacje systemowe są domyślnie włączone. Jeśli Twoja aplikacja przechwytuje zdarzenie przejścia wstecz i nie została zmigrowana do przewidywanego przejścia wstecz, zaktualizuj ją, aby korzystała z obsługiwanych interfejsów API przechodzenia wstecz
Włączanie domyślnych animacji systemowych
Animacje systemowe przejścia wstecz do ekranu głównego, przejścia między aktywnościami i przejścia między zadaniami są dostępne na urządzeniach z Androidem 15 lub nowszym w przypadku aplikacji, które zostały zmigrowane do obsługiwanych interfejsów API obsługi przejścia wstecz.
- Przejście wstecz do ekranu głównego: przenosi użytkownika do ekranu głównego.
- Przejście między aktywnościami: przejścia między aktywnościami w aplikacji.
- Przejście między zadaniami: przejścia między zadaniami.
Te animacje są domyślnie włączone w Androidzie 15 i 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 Activitydo 1.6.0 lub nowszej.
Włączanie przewidywanego przejścia wstecz w Navigation Compose
Aby używać przewidywanego przejścia wstecz w Navigation Compose, upewnij się, że używasz biblioteki
navigation-compose 2.8.0
w wersji 2.8.0 lub nowszej.
Gdy użytkownik przesunie palcem w lewo, Navigation Compose automatycznie zastosuje przejście między ekranami:
Podczas nawigacji możesz tworzyć niestandardowe przejścia za pomocą
popEnterTransition i popExitTransition. Gdy zastosujesz te modyfikatory do NavHost, możesz 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, aby zmniejszyć skalę ekranu wyjścia, gdy użytkownik przechodzi wstecz. Dodatkowo parametr transformOrigin określa punkt, wokół którego ma się odbywać animacja skalowania. Domyślnie jest to środek ekranu (0.5f, 0.5f). Możesz dostosować tę wartość, aby skalowanie rozpoczynało się w innym punkcie.
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 efekt:
popEnterTransition i popExitTransition sterują animacjami podczas usuwania elementów ze stosu wstecz, np. za pomocą gestu przejścia wstecz. Możesz też użyć enterTransition i exitTransition, aby zdefiniować animacje wejścia i wyjścia dla elementów kompozycyjnych w ogóle, a nie tylko dla przewidywanego przejścia wstecz. Jeśli ustawisz tylko enterTransition i exitTransition, będą one używane zarówno w przypadku zwykłej nawigacji, jak i usuwania elementów ze stosu wstecz. Jednak użycie popEnterTransition i popExitTransition pozwala tworzyć odrębne animacje dla przechodzenia wstecz.
Integracja z przejściami elementów współdzielonych
Przejścia elementów współdzielonych zapewniają płynne połączenie wizualne między elementami kompozycyjnymi o wspólnej treści, które są często używane do nawigacji.
Aby używać elementów współdzielonych w 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, dodaj do projektu najnowszą zależność Material3 (androidx.compose.material3:material3-*:1.3.0 lub nowszą).
Komponenty Material, które obsługują animacje przewidywanego przejścia wstecz, to:
SearchBarModalBottomSheetModalDrawerSheet/DismissibleDrawerSheetModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar i ModalBottomSheet są automatycznie animowane za pomocą
gestów przewidywanego przejścia wstecz. ModalNavigationDrawer,
ModalDrawerSheet, DismissibleDrawerSheet i
DismissibleNavigationDrawer wymagają przekazania drawerState do
odpowiednich elementów kompozycyjnych treści arkusza.
Testowanie animacji gestu przewidywanego przejścia wstecz
Jeśli nadal używasz Androida 13 lub Androida 14, możesz przetestować animację przejścia wstecz do ekranu głównego.
Aby przetestować tę animację, wykonaj te czynności:
- Na urządzeniu otwórz kolejno Ustawienia > System > Opcje programisty.
- Wybierz Animacje przewidywanego przejścia wstecz.
- Uruchom zaktualizowaną aplikację i wykonaj gest przejścia wstecz, aby zobaczyć, jak działa.
W Androidzie 15 i nowszym ta funkcja jest domyślnie włączona.
Dodatkowe materiały
- Warsztaty z dodawania animacji przewidywanego przejścia wstecz
- Zaawansowane animacje układu w Compose (film)