Konfigurowanie przewidywanego przejścia wstecz

Animacje przewidywanego przejścia wstecz i animacje systemowe są domyślnie włączone. Jeśli Twoja aplikacja przechwytuje zdarzenie wstecz, a nie została jeszcze przekształcona na korzystanie z przekierowania wstecz na podstawie przewidywania, zaktualizuj ją, aby używać obsługiwanych interfejsów API nawigacji wstecz.

Animacja przewidywanego powrotu do domu.
Przewidowana animacja aktywności.
Animacja predykcyjna dotycząca wielu zadań.

Włączanie domyślnych animacji systemowych

Animacje systemowe dotyczące powrotu do ekranu głównego, przełączania aktywności i przełączania zadań 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.
  • Aktywność krzyżowa: 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:

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

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 wchodzenia i wychodzenia, gdy zostaną zastosowane do NavHost. Możesz ich używać do tworzenia różnych efektów, takich jak skalowanie, zanikanie lub przesuwanie.

W tym przykładzie element scaleOut jest używany w elemencie popExitTransition, aby zmniejszyć rozmiar ekranu podczas opuszczania aplikacji. 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 skalowanie było wyprowadzane z 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:

Rysunek 3. Niestandardowa animacja w aplikacji SociaLite.

popEnterTransitionpopExitTransition 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 i wychodzenia z komponentów, a nie tylko animacji przewidywanego cofnięcia. Jeśli ustawisz tylko enterTransitionexitTransition, będą one używane zarówno do zwykłej nawigacji, jak i do wyjmowania elementów ze stosu. Jednak dzięki elementom popEnterTransitionpopExitTransition 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.

Rysunek 4. Przejście do elementu udostępnionego z funkcją przewidywania wstecz w sekcji Nawigacja w komponencie Compose.

Aby używać elementów wspólnych w komponowaniu nawigacji, zapoznaj się z artykułem Prognosowane cofanie z elementami wspólnymi.

Obsługa przewidywanego tekstu w komponentach Material Compose

Wiele komponentów w bibliotece Material Compose zostało zaprojektowanych tak, aby sprawnie współpracować z przewidywalnymi 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:

SearchBarModalBottomSheet są automatycznie animowane 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:

  1. Na urządzeniu otwórz kolejno 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.

W Androidzie 15 i nowszych ta funkcja jest domyślnie włączona.

Dodatkowe materiały