Animasi kembali prediktif untuk kembali ke layar utama.
Animasi lintas aktivitas prediktif.
Animasi lintas tugas prediktif.
Mengaktifkan animasi sistem default
Animasi sistem kembali ke layar utama, lintas aktivitas, dan lintas tugas tersedia
di perangkat Android 15 dan yang lebih baru untuk aplikasi yang telah dimigrasikan ke API penanganan kembali yang didukung.
Kembali ke layar utama: Mengembalikan pengguna ke layar utama.
Antar-aktivitas: Transisi antar-aktivitas dalam aplikasi.
Animasi ini diaktifkan secara default di Android 15 dan yang lebih tinggi. Di perangkat yang menjalankan Android 13 atau 14, pengguna dapat mengaktifkannya melalui
Opsi developer.
Untuk mendapatkan animasi sistem, update dependensi AndroidX Activity ke 1.6.0 atau yang lebih tinggi.
Mengaktifkan kembali prediktif dengan Navigation Compose
Untuk menggunakan kembali prediktif di Navigation Compose, pastikan Anda menggunakan library
navigation-compose2.8.0
atau yang lebih tinggi.
Navigation Compose secara otomatis melakukan cross-fade antar-layar saat pengguna menggeser kembali:
Gambar 2. Animasi dalam aplikasi crossfade default di
SociaLite.
Saat bernavigasi, Anda dapat membuat transisi kustom dengan
popEnterTransition dan popExitTransition. Jika diterapkan ke
NavHost, pengubah ini memungkinkan Anda menentukan cara animasi layar masuk dan keluar. Anda dapat menggunakannya untuk membuat berbagai efek, seperti penskalaan, pemudaran, atau penggeseran.
Dalam contoh ini, scaleOut digunakan dalam popExitTransition untuk memperkecil
layar keluar saat pengguna kembali. Selain itu, parameter
transformOrigin menentukan titik saat animasi
penskalaan terjadi. Secara default, titik tersebut ada di tengah layar (0.5f, 0.5f).
Anda dapat menyesuaikan nilai ini untuk membuat penskalaan berasal dari titik lain.
Gambar 3. Animasi dalam aplikasi kustom di SociaLite.
popEnterTransition dan popExitTransition secara khusus mengontrol animasi
saat menghapus data sebelumnya, dengan gestur kembali, misalnya. Anda juga dapat menggunakan enterTransition dan exitTransition untuk menentukan animasi untuk masuk dan
keluar dari composable secara umum, tidak hanya untuk kembali prediktif. Jika Anda hanya menyetel enterTransition dan exitTransition, keduanya akan digunakan untuk navigasi reguler dan mengeluarkan stack kembali. Namun, dengan menggunakan popEnterTransition dan popExitTransition, Anda dapat membuat animasi yang berbeda untuk navigasi kembali.
Mengintegrasikan dengan transisi elemen bersama
Transisi elemen bersama memberikan koneksi visual yang lancar antara
composable dengan konten bersama, yang sering digunakan untuk navigasi.
Gambar 4. Transisi elemen bersama dengan kembali prediktif di Navigation
Compose.
Mendukung kembali prediktif dengan komponen Compose Material
Banyak komponen di library Material Compose yang didesain agar berfungsi lancar
dengan gestur kembali prediktif. Untuk mengaktifkan animasi kembali prediktif di komponen ini, sertakan dependensi Material3 terbaru (androidx.compose.material3:material3-*:1.3.0 atau yang lebih tinggi) dalam project Anda.
Komponen Material yang mendukung animasi kembali prediktif meliputi:
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-08-27 UTC."],[],[],null,["# Set up Predictive back\n\nPredictive back and system animations are enabled by default. If your app\nintercepts the back event and you haven't migrated to predictive back,\n[update your app to use supported back navigation APIs](/guide/navigation/custom-back/predictive-back-gesture#update-custom) \nThe predictive back-to-home animation. \nThe predictive cross-activity animation. \nThe predictive cross-task animation.\n\nEnable default system animations\n--------------------------------\n\nThe back-to-home, cross-activity, and cross-task system animations are available\non Android 15 and later devices for apps that have migrated to the supported\nback handling APIs.\n\n- **Back-to-home**: Returns the user to the home screen.\n- **Cross-activity**: Transitions between activities within the app.\n- **Cross-task** : Transitions between [tasks](/guide/components/activities/tasks-and-back-stack).\n\nThese animations are enabled by default on Android 15 and higher. On devices\nrunning Android 13 or 14, users can enable them through the\n[Developer options](/guide/navigation/custom-back/predictive-back-gesture#dev-option).\n| **Note:** Intercepting back at the root activity (e.g. `MainActivity.kt`) disables the back-to-home animation, and intercepting back at an Activity disables the cross-activity animation.\n\nTo get the system animations, update your AndroidX `Activity` dependency\nto [1.6.0](/jetpack/androidx/releases/activity#version_160_3) or higher.\n\nEnable predictive back with Navigation Compose\n----------------------------------------------\n\nTo use predictive back in Navigation Compose, ensure you're using the\n`navigation-compose` [2.8.0](/jetpack/androidx/releases/navigation#2.8.0)\nlibrary or higher.\n\nNavigation Compose automatically cross-fades between screens when the user\nswipes back:\n**Figure 2.** The default crossfade in-app animation in SociaLite.\n\nWhen navigating, you can create custom transitions with\n[`popEnterTransition`](/reference/kotlin/androidx/navigation/compose/package-summary#NavHost(androidx.navigation.NavHostController,kotlin.Any,androidx.compose.ui.Modifier,androidx.compose.ui.Alignment,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1)) and [`popExitTransition`](/reference/kotlin/androidx/navigation/compose/package-summary#NavHost(androidx.navigation.NavHostController,kotlin.Any,androidx.compose.ui.Modifier,androidx.compose.ui.Alignment,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1)). When applied to your\n`NavHost`, these modifiers let you define how the enter and exit screens\nanimate. You can use them to create a variety of effects, such as scaling,\nfading, or sliding.\n\nIn this example, `scaleOut` is used within `popExitTransition` to scale down\nthe exiting screen as the user navigates back. Additionally, the\n`transformOrigin` parameter determines the point around which the scaling\nanimation occurs. By default, it's the center of the screen (`0.5f, 0.5f`).\nYou can adjust this value to make the scaling originate from a different point.\n\n\n```kotlin\nNavHost(\n navController = navController,\n startDestination = Home,\n popExitTransition = {\n scaleOut(\n targetScale = 0.9f,\n transformOrigin = TransformOrigin(pivotFractionX = 0.5f, pivotFractionY = 0.5f)\n )\n },\n popEnterTransition = {\n EnterTransition.None\n },\n modifier = modifier,\n)https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/compose/snippets/src/main/java/com/example/compose/snippets/predictiveback/PredictiveBackSnippets.kt#L62-L75\n```\n\n\u003cbr /\u003e\n\nThis code produces the following result:\n**Figure 3.** A custom in-app animation in SociaLite.\n\n`popEnterTransition` and `popExitTransition` specifically control animations\nwhen popping the back stack, with a back gesture, for example. You can also use `enterTransition` and `exitTransition` to define animations for entering and\nexiting composables in general, not only for predictive back. If you only set `enterTransition` and `exitTransition`, they are used for both regular\nnavigation and popping the back stack. However, using `popEnterTransition` and `popExitTransition` lets you create distinct animations for back navigation.\n\nIntegrate with shared element transitions\n-----------------------------------------\n\nShared element transitions provide a smooth visual connection between\ncomposables with shared content, often used for navigation.\n**Figure 4.** Shared element transition with predictive back in Navigation Compose.\n\nTo use shared elements with Navigation Compose, see\n[Predictive back with shared elements](/develop/ui/compose/animation/shared-elements/navigation#predictive-back).\n\nSupport predictive back with Material Compose components\n--------------------------------------------------------\n\nMany components in the Material Compose library are designed to work seamlessly\nwith predictive back gestures. To enable predictive back animations in these\ncomponents, include the latest [Material3](/jetpack/androidx/releases/compose-material3) dependency (`androidx.compose.material3:material3-*:1.3.0` or higher) in your project.\n\nThe Material components that support predictive back animations include:\n\n- [`SearchBar`](https://m3.material.io/components/search/guidelines#3f2d4e47-2cf5-4c33-b6e1-5368ceaade55)\n- [`ModalBottomSheet`](https://m3.material.io/components/bottom-sheets/guidelines#c72ba2b1-906d-4cfa-9a6a-91e79555bad0)\n- [`ModalDrawerSheet/DismissibleDrawerSheet`](/reference/kotlin/androidx/compose/material3/package-summary#ModalDrawerSheet(androidx.compose.material3.DrawerState,androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.Dp,androidx.compose.foundation.layout.WindowInsets,kotlin.Function1))\n- [`ModalNavigationDrawer/DismissibleNavigationDrawer`](/reference/kotlin/androidx/compose/material3/package-summary#ModalDrawerSheet(androidx.compose.material3.DrawerState,androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.Dp,androidx.compose.foundation.layout.WindowInsets,kotlin.Function1))\n\n[`SearchBar`](/reference/kotlin/androidx/compose/material3/package-summary#SearchBar(kotlin.Function0,kotlin.Boolean,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.material3.SearchBarColors,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.foundation.layout.WindowInsets,kotlin.Function1)) and [`ModalBottomSheet`](/reference/kotlin/androidx/compose/material3/package-summary#ModalBottomSheet(kotlin.Function0,androidx.compose.ui.Modifier,androidx.compose.material3.SheetState,androidx.compose.ui.unit.Dp,kotlin.Boolean,androidx.compose.ui.graphics.Shape,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.Dp,androidx.compose.ui.graphics.Color,kotlin.Function0,kotlin.Function0,androidx.compose.material3.ModalBottomSheetProperties,kotlin.Function1)) automatically animate with\npredictive back gestures. [`ModalNavigationDrawer`](/reference/kotlin/androidx/compose/material3/package-summary#ModalNavigationDrawer(kotlin.Function0,androidx.compose.ui.Modifier,androidx.compose.material3.DrawerState,kotlin.Boolean,androidx.compose.ui.graphics.Color,kotlin.Function0)),\n[`ModalDrawerSheet`](/reference/kotlin/androidx/compose/material3/package-summary#ModalDrawerSheet(androidx.compose.material3.DrawerState,androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.Dp,androidx.compose.foundation.layout.WindowInsets,kotlin.Function1)), [`DismissibleDrawerSheet`](/reference/kotlin/androidx/compose/material3/package-summary#DismissibleDrawerSheet(androidx.compose.material3.DrawerState,androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.Dp,androidx.compose.foundation.layout.WindowInsets,kotlin.Function1)), and\n[`DismissibleNavigationDrawer`](/reference/kotlin/androidx/compose/material3/package-summary#DismissibleNavigationDrawer(kotlin.Function0,androidx.compose.ui.Modifier,androidx.compose.material3.DrawerState,kotlin.Boolean,kotlin.Function0)) require you to pass the `drawerState` to\ntheir respective sheet content composables.\n\nTest the predictive back gesture animation\n------------------------------------------\n\nIf you still use Android 13 or Android 14, you can test the back-to-home\nanimation.\n\nTo test this animation, follow these steps:\n\n1. On your device, go to **Settings \\\u003e System \\\u003e Developer options**.\n2. Select **Predictive back animations**.\n3. Launch your updated app, and use the back gesture to see it in action.\n\nOn Android 15 and later, this feature is enabled by default.\n\nAdditional resources\n--------------------\n\n- [Add predictive back animations codelab](/codelabs/predictive-back#0)\n- [Advanced layout animations in Compose video](https://www.youtube.com/watch?v=PR6rz1QUkAM&t=1195s&ab_channel=AndroidDevelopers)"]]