Aby włączyć animacje przewidywanego przejścia wstecz, musisz wyrazić zgodę na obsługę przewidywanego gestu. Aby wyrazić zgodę, dodaj ciąg „android:enableOnBackInvokedCallback="true
” do tagu <application>
lub do poszczególnych tagów <activity>
w pliku AndroidManifest.xml
.
Włączanie domyślnych animacji systemowych
Animacje systemowe dotyczące przejścia na ekran główny, przełączania między aktywnościami i przełączania 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 do obsługi przejścia wstecz.
- Powrót do ekranu głównego: przenosi użytkownika na ekran główny.
- Przejścia między aktywnościami: przejścia między aktywnościami w aplikacji.
- Przejścia między zadaniami: przejścia między zadaniami.
Te animacje są domyślnie włączone na Androidzie 15 i nowszych. Na urządzeniach z Androidem 13 lub 14 użytkownicy mogą włączyć te opcje 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ą funkcji Nawigacja w edytorze
Aby korzystać z funkcji przewidywanego cofnięcia w sekcji Nawigacja w komponencie, upewnij się, że używasz biblioteki navigation-compose
2.8.0 lub nowszej.
Nawigacja w komponowaniu automatycznie przechodzi między ekranami, gdy użytkownik przesunie palcem w lewo:
Podczas nawigacji możesz tworzyć niestandardowe przejścia za pomocą elementów popEnterTransition
i popExitTransition
. Te modyfikatory umożliwiają określenie sposobu animacji ekranów wejścia i wyjścia z poziomu NavHost
. Możesz ich używać do tworzenia różnych efektów, takich jak skalowanie, zanikanie czy przesuwanie.
W tym przykładzie element scaleOut
jest używany w elemencie popExitTransition
, aby zmniejszać ekran zamykania, gdy użytkownik przechodzi 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 zmienić tę wartość, aby przesunąć punkt początkowy skalowania.
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 wyjmowania elementów ze stosu, na przykład za pomocą gestu wstecz. Możesz też użyć enterTransition
i exitTransition
, aby zdefiniować animacje wchodzenia do komponentów i opuszczania ich w ogóle, a nie tylko w przypadku przewidywanego cofnięcia. Jeśli ustawisz tylko enterTransition
i exitTransition
, będą one używane zarówno do zwykłej nawigacji, jak i do wyjmowania elementów ze stosu. Jednak dzięki elementom popEnterTransition
i popExitTransition
możesz tworzyć różne animacje dla przycisku Wstecz.
Integracja z przejściami wspólnych elementów
Przejścia między elementami współdzielonymi zapewniają płynne wizualne połączenie między komponentami ze współdzielonymi treściami, które często służą do nawigacji.
Aby używać elementów wspólnych w komponowaniu nawigacji, zapoznaj się z artykułem Przewidywanie powrotów z elementami wspólnymi.
Obsługa prognozowanego tworzenia kopii zapasowej za pomocą komponentów Material Compose
Wiele komponentów w bibliotece Material Compose zostało zaprojektowanych tak, aby sprawnie współpracować z przewidywanymi gestami wstecz. Aby włączyć przewidujące animacje wstecz w tych komponentach, dodaj do projektu najnowszą zależność Material3 (androidx.compose.material3:material3-*:1.3.0
lub nowszą).
Komponenty materiałowe, które obsługują animacje przewidywanego przejścia wstecz, to:
SearchBar
ModalBottomSheet
ModalDrawerSheet/DismissibleDrawerSheet
ModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar
i ModalBottomSheet
animują się automatycznie za pomocą gestów przewidywanego przejścia wstecz. Funkcje ModalNavigationDrawer
, ModalDrawerSheet
, DismissibleDrawerSheet
i DismissibleNavigationDrawer
wymagają przekazania wartości drawerState
do odpowiednich komponentów treści arkusza.
Testowanie animacji przewidywanego przejścia wstecz
Jeśli nadal używasz Androida 13 lub Androida 14, możesz przetestować animację powrotu do ekranu głównego.
Aby przetestować tę animację, wykonaj te czynności:
- Na urządzeniu wybierz Ustawienia > System > Opcje programisty.
- Wybierz Animacje przewidywanego przejścia wstecz.
- Uruchom zaktualizowaną aplikację i użyj gestu cofania, aby zobaczyć, jak działa.
W Androidzie 15 i nowszych ta funkcja jest domyślnie włączona.
Dodatkowe materiały
- Ćwiczenie z programowania dotyczące dodawania animacji przewidywanego przejścia wstecz
- Zaawansowane animacje układu w Compose Video