Konfigurowanie przewidywanego przejścia wstecz

Przewidywane przejście wstecz i animacje systemowe są domyślnie włączone. Jeśli Twoja aplikacja przechwytuje zdarzenie powrotu i nie została jeszcze zmigrowana do przewidywanego przejścia wstecz, zaktualizuj ją, aby korzystała z obsługiwanych interfejsów API przechodzenia wstecz.

Animacja przewidywanego przejścia wstecz do ekranu głównego.
Animacja przewidywanego przejścia między aktywnościami.
Animacja predykcyjna obejmująca wiele zadań.

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 powrotu.

  • Powrót do ekranu głównego: przenosi użytkownika z powrotem 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.

Animacje te są domyślnie włączone na urządzeniach z Androidem 15 lub nowszym. Na urządzeniach z Androidem 13 lub 14 użytkownicy mogą włączyć je 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 w wersji navigation-compose 2.8.0 lub nowszej.

Biblioteka Navigation Compose automatycznie przechodzi między ekranami, gdy użytkownik przesuwa palcem w tył:

Rysunek 2. Domyślna animacja przejścia w aplikacji SociaLite.

Podczas nawigacji możesz tworzyć niestandardowe przejścia za pomocą popEnterTransitionpopExitTransition. Gdy zastosujesz te modyfikatory do NavHost, możesz określić sposób animowania ekranów 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 symbol scaleOut jest używany w ramach popExitTransition, aby zmniejszyć rozmiar ekranu wyjściowego, gdy użytkownik wraca do poprzedniego ekranu. Dodatkowo parametr transformOrigin określa punkt, wokół którego następuje 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 wynik:

Rysunek 3. Niestandardowa animacja w aplikacji SociaLite.

popEnterTransitionpopExitTransition sterują animacjami podczas wycofywania ze stosu wstecznego, np. z użyciem gestu cofania. Możesz też użyć enterTransitionexitTransition, aby zdefiniować animacje wchodzenia i wychodzenia elementów kompozycyjnych w ogóle, a nie tylko w przypadku przewidywanego przejścia wstecz. Jeśli ustawisz tylko enterTransitionexitTransition, będą one używane zarówno w przypadku zwykłej nawigacji, jak i cofania się w stosie wstecznym. Użycie popEnterTransitionpopExitTransition pozwala jednak tworzyć odrębne animacje na potrzeby przechodzenia wstecz.

Integracja z przejściami elementów współdzielonych

Przejścia między elementami współdzielonymi zapewniają płynne połączenie wizualne między komponentami z treściami współdzielonymi, które są często używane do nawigacji.

Rysunek 4. Przejście elementu współdzielonego z przewidywanym przejściem wstecz w Navigation Compose.

Aby używać elementów udostępnionych w Navigation Compose, przeczytaj artykuł Przewidywane przejście wstecz z elementami udostępnionymi.

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 przewidywania powrotu. 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:

SearchBarModalBottomSheet są automatycznie animowane za pomocą gestów przewidywanego przejścia wstecz. ModalNavigationDrawer, ModalDrawerSheet, DismissibleDrawerSheetDismissibleNavigationDrawer wymagają przekazania parametru drawerState do odpowiednich komponentów kompozycyjnych arkusza.

Sprawdź animację gestu 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:

  1. Na urządzeniu otwórz Ustawienia > System > Opcje programisty.
  2. Wybierz Animacje przewidywanego przejścia wstecz.
  3. Uruchom zaktualizowaną aplikację i użyj gestu cofania, aby zobaczyć, jak działa.

Na Androidzie 15 i nowszym ta funkcja jest domyślnie włączona.

Dodatkowe materiały