navigation3
| Update Terbaru | Rilis Stabil | Kandidat Rilis | Rilis Beta | Rilis Alfa |
|---|---|---|---|---|
| 22 Oktober 2025 | - | - | 1.0.0-beta01 | - |
Mendeklarasikan dependensi
Untuk menambahkan dependensi pada navigation3, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.
Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:
Groovy
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.0.0-beta01" implementation "androidx.navigation3:navigation3-ui:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.0.0-beta01") implementation("androidx.navigation3:navigation3-ui:1.0.0-beta01") }
Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.
Masukan
Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.
Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.
Tidak ada catatan rilis untuk artefak ini.
Versi 1.0
Versi 1.0.0-beta01
22 Oktober 2025
androidx.navigation3:navigation3-*:1.0.0-beta01 dirilis. Versi 1.0.0-beta01 berisi commit ini.
Perubahan API
SceneStrategyScopesekarang hanya memiliki konstruktor publik tanpa argumen, yang cocok untuk mengujiSceneStrategydanSceneyang ditampilkan secara terpisah. Untuk kasus penggunaan yang lebih kompleks, gunakanrememberSceneState(). (I8440c, b/451679047)
Perbaikan Bug
- Memperbaiki loop tak terbatas saat menggabungkan
SceneStrategydenganthen. (Iba3f0, b/450323470) - Memperbaiki kedipan layar saat menukar
backStackyang diteruskan keNavDisplaydan menggunakan animasi. (Ief7b5, b/450967248)
Versi 1.0.0-alpha11
8 Oktober 2025
androidx.navigation3:navigation3-*:1.0.0-alpha11 dirilis. Versi 1.0.0-alpha11 berisi commit ini.
Perubahan API
- Metode
calculateScenepadaSceneStrategytidak lagi@Composable. Sebagai gantinya, pertimbangkan untuk memindahkan pekerjaan ini ke konstruksi metodeSceneStrategyAnda (yaitu, dalam metoderememberMySceneStrategy()) yang sepenuhnya memungkinkan Anda menentukan masa aktif nilairememberSaveableatau pernyataanrememberutama dari nilai yang benar. (If1733, b/448709506) - Parameter
onBackuntukSceneStrategy.calculateScenetelah dipindahkan ke cakupan penerima baruSceneStrategyScopeuntuk memperjelas bahwa ini adalah parameter opsional dan menyediakan titik ekstensi untuk fitur Navigation3 mendatang. (I3aea3, b/448460407) - Lambda
onBackyang diteruskan keNavDisplaydan keSceneStrategyAnda tidak lagi menyediakan parametercount: Intuntuk menunjukkan kapan beberapa entri harus dikeluarkan. Sebagai gantinya, lambda() -> Unitkini akan dipanggil beberapa kali berturut-turut dalam kasus langka saat Scene Anda meminta beberapa entri muncul. (Idedb5, b/446989346) - Hapus class
NavEntryWrapperdan ganti fungsinya dengan classNavEntryakhir dengan konstruktor sekunder baru yang menggunakanNavEntrydengan konten baru. Hal ini akan memungkinkan dukungan berkelanjutan untuk membungkus entri dengan konten baru. (I7da2a, b/444447130) - Fungsi
navEntryDecoratoryang membuat dan menampilkanNavEntryDecoratortelah dihapus dan diganti dengan classNavEntryDecoratoryang kini dibuat publik dan terbuka untuk sub-classing. (If81f8, b/444447434, b/447381176) SavedStateNavEntryDecoratordiganti namanya menjadiSaveableStateHolderNavEntryDecoratorkarena menghiasi entri denganSaveableStateHolder. Dekorator juga telah difaktorkan ulang dari fungsi menjadi class karena secara fungsional merupakan factory untukNavEntryDecorator. (Ie6013, b/447381176)- Tampilan kustom yang menggunakan
SceneStatesebagai alternatif untuk menggunakanNavDisplaytidak lagi diwajibkan untuk menggunakan komposisi lokalLocalEntriesToRenderInCurrentScene, yang kini bersifat internal. (Ic40ef, b/414668196) - Menghapus
SceneSetupNavEntryDecoratordanrememberSceneSetupNavEntryDecorator()dari tampilan API publik. Fungsi ini kini disertakan secara default tanpa mengharuskan Anda menyertakannya secara manual. (Ieae42, b/444479133) NavEntry,DialogScene,SinglePaneScene, danSceneStatekini mengimplementasikan equals. (I96121)- Antarmuka adegan memiliki kolom metadata baru untuk melampirkan metadata khusus adegan untuk NavDisplay. Hal ini memungkinkan Scene mengganti metadata pada
NavDisplay, misalnya dengan transisi. (I1fd96, b/443955625) - Sederhanakan tanda tangan
rememberNavBackStackdengan menghapus parameter jenis generik yang berlebihan. Fungsi ini kini menerimavararg elements: NavKey. (I03e45) - Animasi default untuk
NavDisplaykini menjadi bagian dari API umum yang memungkinkan animasi tersebut dipanggil dari semua platform. (I71af9, b/447147159) - Ganti nama
EntryProviderBuildermenjadiEntryProviderScopeuntuk mencerminkan secara akurat bahwa class adalah DSL Kotlin yang menyediakan cakupan untuk membangunNavEntries. (Ia7465)
Perbaikan Bug
rememberNavBackStack()kini menerapkan serialisasi polimorfik untuk NavKey dan memerlukanSavedStateConfigurationkustom yang dikonfigurasi untuk memastikan pemulihan status yang benar. KDoc telah diperbarui untuk mencerminkan persyaratan bahwa semua subjenis NavKey harus didaftarkan di SerializersModule yang disediakan. (I6de37,I782f2, b/446664383)
Versi 1.0.0-alpha10
24 September 2025
androidx.navigation3:navigation3-*:1.0.0-alpha10 dirilis. Versi 1.0.0-alpha10 berisi commit ini.
Perubahan API
- Menambahkan overload
NavDisplaybaru yang menggunakan daftarNavEntry<T>yang telah dihiasi olehrememberDecoratedNavEntries. (I4025b, b/441940314) - Memindahkan
DialogSceneke paket baru. (Ia5840) - Menghapus API publik
DecorateNavEntry. Sebagai gantinya, gunakanrememberDecoratedNavEntriesuntuk membungkus NavEntry dengan daftar dekorator. (Id8c09) - UI Navigation3 kini menyediakan properti
transitionSpecdefault baru. (Ibcabd) - Menambahkan objek
SceneStatebaru untuk membantu mengelola adegan. Hal ini juga menyediakan overloadNavDisplaybaru yang menggunakanSceneStatedanNavigationEventState. (Idfb46, b/444479133) NavDisplaykini memungkinkan Anda menyesuaikan transisi berdasarkan tujuan dan asalScenedengan melihatcurrentStatedantargetStateTransition. (I906cc, b/443872322)NavigationEventInfosekarang menjadiabstract class, bukaninterface. Perbarui semua implementasi kustom untuk mewarisi dari class (misalnya,data class MyInfo : NavigationEventInfo()). (I1e59c, b/444734264)- API handler
navigationevent-composetelah diupdate.NavigationEventHandlerdanNavigationBackHandler(serta variannya) kini mendukung penggantian baru yang menerimaNavigationEventStateyang diangkat. Overload sederhana (mengambilcurrentInfo) dipertahankan dan kini menggunakan model status baru ini secara internal. (Ic3251, b/444734264) - Semua Scene API telah dipindahkan dari navigation3-ui ke navigation3-runtime. Artinya, kini tersedia di semua platform yang didukung oleh navigation3-runtime. (I431d0, b/444449993)
- Menambahkan overload
rememberDecoratedNavEntriesbaru yang menggunakan daftarNavEntryuntuk menghias. Entri input dapat didekorasi dengan dekorator entri lain. (I5a034, b/444230270) - Menghapus parameter jenis kartu pengganti navigation3 (I02540)
- Meningkatkan penanganan generik untuk DSL
entryProvider. Jika sebelumnya Anda mengimporandroidx.navigation3.runtime.entry, hal ini tidak diperlukan lagi. (I299fc) - Batasi kelebihan beban
NavBackStackSerializerberbasis refleksi ke Android. Hal ini mencegah kegagalan serialisasi runtime implisit pada platform non-Android dengan menerapkan penggunaan penggantianSavedStateConfigurationeksplisit dalam kode multiplatform. (I73313, b/420443609) - Jadikan
swipeEdgeNavigationEventsebagai@IntDef(Icee54, b/443950342) - Membatasi serialisasi
NavBackStackke Android. Hal ini mencegah kegagalan runtime di platform non-Android. Untuk penyimpanan status multiplatform, gunakan penggantianrememberNavBackStackdenganSavedStateConfigurationeksplisit. (I1e418, b/420443609)
Perbaikan Bug
- Memperbaiki error selama kembali prediktif saat
NavDisplaybertingkat memiliki satu entri turunan. (I2cdc0, b/441933162)
Versi 1.0.0-alpha09
10 September 2025
androidx.navigation3:navigation3-*:1.0.0-alpha09 dirilis. Versi 1.0.0-alpha09 berisi commit ini.
Perubahan API
DecoratedNavEntryProvidertelah diganti denganrememberDecoratedNavEntriesyang membuat dan menampilkan NavEntry yang dihiasi dengan daftar dekorator yang disediakan (I0fe1c, b/441328236)NavBackStacksekarang bersifat generik untuk jenisNavKey. Hal ini memungkinkan aplikasi dan library menentukan jenis kunci kustom untuk tumpukan belakangnya, bukan hanya dibatasi padaNavKey. (I4d190,Iad2f4, b/420443609)NavBackStackkini menjadi@kotlinx.serialization.Serializable, sehingga memungkinkan penyimpanan dan pemulihan status navigasi di seluruh penghentian proses dan perubahan konfigurasi tanpa boilerplate tambahan. (I2c3cf, b/420443609)RememberNavBackStacktelah dipindahkan kecommonMainuntuk memastikan bahwaRememberNavBackStackdisediakan di semua target platform. (Id69e7, b/420443609)
Perbaikan Bug
NavDisplaykini memindahkan setiapNavEntrykeLifecycle.Stateyang benar dengan benar. (I30aac, b/440145700)- Memperbaiki masalah saat
NavDisplaymengabaikanNavigationEventDispatcherOwnerbertingkat yang ditetapkan melaluiLocalNavigationEventDispatcherOwnerlibraryNavigationEvent. (I6224a)
Perubahan Dependensi
- Navigation3 kini bergantung pada NavigationEvent Alpha08.
Versi 1.0.0-alpha08
27 Agustus 2025
androidx.navigation3:navigation3-*:1.0.0-alpha08 dirilis. Versi 1.0.0-alpha08 berisi commit ini.
Fitur Baru
- Menambahkan target Multiplatform Kotlin (KMP) baru ke artefak
Navigation3 Runtime.Navigation3 Runtimekini mendukung total platform berikut: JVM (Android dan Desktop), Native (Linux, iOS, watchOS, macOS, MinGW), dan Web (JavaScript, WasmJS). (I55078, b/424410398, b/419294028, b/419046226). Catatan: Ini tidak menyediakan target KMP untuk artefakNavigation3 UI. Di platform lain, Anda harus menerapkanNavDisplaykustom Anda sendiri. Jika Anda ingin melihatnya didukung, pilih masalah Jetbrains di sini dan pantau progresnya untuk mendapatkan dukungan tambahan di sana. - Objek
NavDisplayInfosekarang bersifat publik dan dapat digunakan untuk mengambil daftar entri yang terlihat dariNavDisplay. (Ibc91f)
Perubahan API
- Menambahkan
NavBackStackSerializerbaru untuk digunakan bersamarememberNavBackStackguna melakukan pemulihan status.rememberNavBackStack()kini juga menggunakanSavedStateConfigurationyang dapat digunakan untuk memberikan konfigurasi Anda sendiri. (I2f4d2, I4cd58, b/420443609)
Perbaikan Bug
- Memperbaiki masalah saat navigasi menyebabkan peristiwa Siklus Proses yang salah dipicu. (I8bf6d, b/425901162, b/434109022)
Masalah Umum
- Ada bug yang diperkenalkan oleh I8bf6d yang menyebabkan Siklus Proses didasarkan pada adegan, bukan entri individual, yang merusak Siklus Proses untuk kasus apa pun saat
keyyang diberikan keNavEntrybukanStringatauNavEntryAnda belum mengganticontentKeydan menyetelnya sama dengankey(perhatikan bahwa tindakan ini memastikan kunci Anda dapat disimpan keBundle). Bug ini telah diperbaiki untuk rilis berikutnya. (b/440145700)
Versi 1.0.0-alpha07
13 Agustus 2025
androidx.navigation3:navigation3-*:1.0.0-alpha07 dirilis. Versi 1.0.0-alpha07 berisi commit ini.
Pembaruan MinSdk
- minSdk default untuk AndroidX telah dipindahkan dari API 21 ke API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
Perubahan API
SavedStateNavEntryDecoratorsekarang menggunakanSaveableStateRegistryyang dibuat ke dalamSaveableStateProvideruntuk menyimpan dan memulihkan status. (If8d9a)predictivePopTransitionSpeckini menyediakan tepi geser sebagai parameter, sehingga Anda dapat menyesuaikan transisi berdasarkan tepi tempat pengguna memulai gestur Kembali Prediktif. (I753a8)
Perbaikan Bug
- Memperbaiki masalah yang menyebabkan adegan kustom dihitung ulang tanpa batas karena adegan terbaru tidak diingat. (I7ba84, b/418153031)
Pembaruan dependensi
- Navigation3 kini bergantung pada Navigation Event
1.0.0-alpha06.
Versi 1.0.0-alpha06
30 Juli 2025
androidx.navigation3:navigation3-*:1.0.0-alpha06 dirilis. Versi 1.0.0-alpha06 berisi commit ini.
Pembaruan Dependensi
- Navigation3 kini bergantung pada Navigation Event
1.0.0-alpha05.
Versi 1.0.0-alpha05
2 Juli 2025
androidx.navigation3:navigation3-*:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit ini.
Perubahan Perilaku
- Status
NavEntrykini sepenuhnya didasarkan pada daftar dekorator saat ini yang diteruskan keNavDisplay. Artinya, dekorator harus ditukar bersama data sebelumnya jika ada beberapa data sebelumnya untuk mempertahankan status NavEntry pada data sebelumnya. Jika tidak, status akan dihapus seolah-olah entri dikeluarkan (bukan ditukar). (I7a759, b/428033667)
Versi 1.0.0-alpha04
18 Juni 2025
androidx.navigation3:navigation3-*:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit ini.
Perubahan API
NavEntry.contentkini bersifat pribadi. Untuk memanggil kontenNavEntry, panggil APINavEntry.Content()baru yang tidak lagi memerlukan parameterkeyuntuk dipanggil. (Icd0fd, b/420991203)NavEntry.keykini menjadi kolom pribadi.NavEntrydan status relevannya harus diidentifikasi oleh kolomcontentKeybaru yang dihasilkan dari lambdacontentKeyFactorybaru dan secara default menggunakan hash yang dapat disimpan yang dihasilkan dariNavEntry.key(I81a6c, b/422001357, b/420991203 I2d7d4, b/420991203, b/422841812)
Perubahan Dependensi
- Navigation3 kini bergantung pada artefak
androidx.navigationevent.composeyang baru.
Versi 1.0.0-alpha03
4 Juni 2025
androidx.navigation3:navigation3-*:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit ini.
Perbaikan Bug
Navigation3tidak akan lagi menghapus status dekorator untukbackStacksyang telah ditukar dan diganti dengan instancebackStacklain. (I28a42, b/415076044)
Versi 1.0.0-alpha02
23 Mei 2025
androidx.navigation3:navigation3-*:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit ini.
Perbaikan Bug
- Memperbaiki masalah pada
SavedStateNavEntryDecoratoryang menyebabkan konflik untuk berbagai class data dengan nilai properti yang sama. (b/418070648, Iff4775) - Memperbaiki masalah class yang hilang yang akan menyebabkan error saat dijalankan tanpa mendeklarasikan dependensi eksplisit. (b/419049149, I4b4ed)
Versi 1.0.0-alpha01
20 Mei 2025
androidx.navigation3:navigation3-*:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit ini.
Fitur Baru
Navigation3 adalah library navigasi baru yang dibuat khusus untuk menangani navigasi dalam aplikasi Jetpack Compose. Artefak androidx.navigation3.runtime menyediakan blok penyusun, sedangkan artefak androidx.navigation3.ui menyediakan lapisan UI melalui NavDisplay API. Developer dapat memberikan statusnya sendiri langsung ke fungsi composable NavDisplay, yang mengubah konten berdasarkan perubahan status developer.
@Serialiable object Home : NavKey
@Serialiable object Chat : NavKey
val backStack = rememberNavBackStack(Home)
NavDisplay(backStack, entryProvider = entryProvider {
entry<Home> {
Column {
Text(“Home”)
Button(onClick = { backStack.add(Chat) } ) {
Text(“Go to Chat”)
}
}
}
entry<Chat> { /* My Composable Content */ }
})
Untuk mengetahui informasi selengkapnya, lihat panduan Navigation3.