Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Navigation 3 adalah library navigasi baru yang dirancang untuk berfungsi dengan Compose. Dengan
Navigation 3, Anda memiliki kontrol penuh atas data sebelumnya, dan menavigasi ke dan
dari tujuan semudah menambahkan dan menghapus item dari daftar. Hal ini
membuat sistem navigasi aplikasi yang fleksibel dengan menyediakan:
Konvensi untuk membuat model data sebelumnya, dengan setiap entri di data sebelumnya
mewakili konten yang telah dibuka pengguna
UI yang otomatis diperbarui dengan perubahan data sebelumnya (termasuk animasi)
Cakupan untuk item dalam data sebelumnya, yang memungkinkan status dipertahankan saat
item berada dalam data sebelumnya
Sistem tata letak adaptif yang memungkinkan beberapa tujuan ditampilkan secara
bersamaan, dan memungkinkan peralihan yang lancar di antara tata letak tersebut
Mekanisme untuk konten agar dapat berkomunikasi dengan tata letak induknya (metadata)
Pada tingkat tinggi, Anda menerapkan Navigasi 3 dengan cara berikut:
Tentukan konten yang dapat dinavigasi pengguna di aplikasi Anda, masing-masing dengan kunci
unik, dan tambahkan fungsi untuk me-resolve kunci tersebut ke konten. Lihat Me-resolve kunci
ke konten.
Buat data sebelumnya yang akan didorong dan dihapus saat pengguna membuka
aplikasi Anda. Lihat Membuat data sebelumnya.
Gunakan NavDisplay untuk menampilkan data sebelumnya aplikasi Anda. Setiap kali data
datang, data tersebut akan memperbarui UI untuk menampilkan konten yang relevan. Lihat Menampilkan
data sebelumnya.
Ubah strategi sceneNavDisplay sesuai kebutuhan untuk
mendukung tata letak adaptif dan platform yang berbeda.
Navigation 3 meningkatkan Jetpack Navigation API asli dengan cara
berikut:
Memberikan integrasi yang lebih sederhana dengan Compose
Memberi Anda kontrol penuh atas data sebelumnya
Memungkinkan pembuatan tata letak yang dapat membaca lebih dari satu tujuan
dari data sebelumnya secara bersamaan, sehingga memungkinkannya beradaptasi dengan perubahan
ukuran jendela dan input lainnya.
Baca selengkapnya tentang prinsip Navigation 3 dan pilihan desain API di postingan
blog ini.
Contoh kode
Repositori resep berisi contoh cara menggunakan
elemen penyusun Navigasi 3 untuk mengatasi tantangan navigasi umum.
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-07-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-07-27 UTC."],[],[],null,["# Navigation 3\n\n| **Experimental:** Navigation 3 is in alpha. The APIs may change in the future. Please file bugs and feedback using the [issue tracker](https://issuetracker.google.com/issues/new?component=1750212&template=2102223).\n\nNavigation 3 is a new navigation library designed to work with Compose. With\nNavigation 3, you have full control over your back stack, and navigating to and\nfrom destinations is as simple as adding and removing items from a list. It\ncreates a flexible app navigation system by providing:\n\n- Conventions for modeling a back stack, where each entry on the back stack represents content that the user has navigated to\n- A UI that automatically updates with back stack changes (including animations)\n- A scope for items in the back stack, allowing state to be retained while an item is in the back stack\n- An adaptive layout system that allows multiple destinations to be displayed at the same time, and allowing seamless switching between those layouts\n- A mechanism for content to communicate with its parent layout (metadata)\n\nAt a high level, you implement Navigation 3 in the following ways:\n\n1. Define the content that users can navigate to in your app, each with a unique key, and add a function to resolve that key to the content. See [Resolve keys\n to content](/guide/navigation/navigation-3/basics#resolve-keys).\n2. Create a back stack that keys are pushed onto and removed as users navigate your app. See [Create a back stack](/guide/navigation/navigation-3/basics#create-back).\n3. Use a [`NavDisplay`](/reference/kotlin/androidx/navigation3/ui/package-summary#NavDisplay(kotlin.collections.List,androidx.compose.ui.Modifier,androidx.compose.ui.Alignment,kotlin.Function1,kotlin.collections.List,androidx.navigation3.ui.SceneStrategy,androidx.compose.animation.SizeTransform,kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1)) to display your app's back stack. Whenever the back stack changes, it updates the UI to display relevant content. See [Display\n the back stack](/guide/navigation/navigation-3/basics#display-back).\n4. Modify `NavDisplay`'s [scene strategies](/guide/navigation/navigation-3/custom-layouts) as needed to support adaptive layouts and different platforms.\n\nYou can see the [full source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:navigation3/) for Navigation 3 on AOSP.\n\nImprovements upon Jetpack Navigation\n------------------------------------\n\nNavigation 3 improves upon the original Jetpack Navigation API in the following\nways:\n\n- Provides a simpler integration with Compose\n- Offers you full control of the back stack\n- Makes it possible to create layouts that can read more than one destination from the back stack at the same time, allowing them to adapt to changes in window size and other inputs.\n\nRead more about Navigation 3's principles and API design choices in [this blog\npost](https://android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html).\n\nCode samples\n------------\n\nThe [recipes repository](https://github.com/android/nav3-recipes) contains examples of how to use the\nNavigation 3 building blocks to solve common navigation challenges."]]