navigation3
| Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
|---|---|---|---|---|
| 19 Kasım 2025 | 1.0.0 | - | - | - |
Bağımlılıkları bildirme
navigation3'e bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Groovy
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.0.0" implementation "androidx.navigation3:navigation3-ui:1.0.0" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.0.0") implementation("androidx.navigation3:navigation3-ui:1.0.0") }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz olursa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Bu yapıyla ilgili sürüm notu yok.
Sürüm 1.0
Sürüm 1.0.0
19 Kasım 2025
androidx.navigation3:navigation3-*:1.0.0 iptal edilir. 1.0.0 sürümü bu commit'leri içerir.
Navigation3 ile tanışın!
- Navigation3 kitaplığı artık kararlı sürümde! Navigation3, AndroidX Compose'un navigasyon için ilk yaklaşımıdır.
- Daha fazla bilgi için duyuru blog yayınımıza göz atın, kaynakları ziyaret edin ve tarifleri deneyin.
Sürüm 1.0.0-rc01
5 Kasım 2025
androidx.navigation3:navigation3-*:1.0.0-rc01 iptal edilir. 1.0.0-rc01 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
NavDisplayartıkScenedüzeyinde birLocalLifecycleOwnerayarlıyor. Bu sayede sahne yazarları,Lifecycle.StateöğesininRESUMEDolup olmadığını kontrol ederek tüm geçişlerin tamamlanıp tamamlanmadığını belirleyebiliyor.NavEntrydüzeyindekiLocalLifecycleOwnerdavranışı değişmez: Geçiş devam ediyorsaSTARTEDile sınırlanmaya devam eder ve buNavEntry, geri yığından çıkarılıp animasyonla kaldırılıyorsaCREATEDile sınırlanır. (I03113, b/454045829)
Sürüm 1.0.0-beta01
22 Ekim 2025
androidx.navigation3:navigation3-*:1.0.0-beta01 iptal edilir. 1.0.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
SceneStrategyScopeartık yalnızca bağımsız olarakSceneStrategyve döndürülenSceneöğenizi test etmeye uygun, bağımsız değişken içermeyen bir herkese açık oluşturucuya sahip. Daha karmaşık kullanım alanları için lütfenrememberSceneState()kullanın. (I8440c, b/451679047)
Hata Düzeltmeleri
SceneStrategyilethen'yi zincirleme bağlarken oluşan sonsuz döngü sorunu düzeltildi. (Iba3f0, b/450323470)backStack,NavDisplayile değiştirilirken ve animasyonlar kullanılırken oluşan ekran titremesi düzeltildi. (Ief7b5, b/450967248)
Sürüm 1.0.0-alpha11
8 Ekim 2025
androidx.navigation3:navigation3-*:1.0.0-alpha11 iptal edilir. 1.0.0-alpha11 sürümü bu commit'leri içerir.
API Değişiklikleri
SceneStrategyüzerindekicalculateSceneyöntemi artık@Composabledeğil. Bunun yerine, bu çalışmayıSceneStrategyyönteminizi (ör.rememberMySceneStrategy()yöntemi) oluşturma aşamasına taşıyarak herhangi birrememberSaveabledeğerinin veya anahtarrememberifadelerinin ömrünü doğru değerlere göre tam olarak tanımlayabilirsiniz. (If1733, b/448709506)SceneStrategy.calculateSceneiçinonBackparametresi, bunun isteğe bağlı bir parametre olduğunu daha net bir şekilde belirtmek ve gelecekteki Navigation3 özellikleri için bir uzantı noktası sağlamak amacıylaSceneStrategyScope'nin yeni alıcı kapsamına taşındı. (I3aea3, b/448460407)NavDisplayveSceneStrategy'ye iletilenonBacklambda'sı, birden fazla girişin ne zaman açılması gerektiğini belirten bircount: Intparametresi sağlamaz. Bunun yerine,() -> Unitlambda'sı, Sahne isteklerinizin birden fazla girişin gösterilmesini istediği nadir durumlarda art arda birden çok kez çağrılacak. (Idedb5, b/446989346)NavEntryWrappersınıfını kaldırın ve işlevini, yeni içerik içeren birNavEntryalan yeni bir ikincil oluşturucuya sahip nihai birNavEntrysınıfıyla değiştirin. Bu sayede, bir girişi yeni içerikle sarmalama özelliği desteklenmeye devam edecektir. (I7da2a, b/444447130)navEntryDecoratorişlevi kaldırıldı ve yerine artık herkese açık olan ve alt sınıflara ayrılabilenNavEntryDecoratorsınıfı eklendi.NavEntryDecorator(If81f8, b/444447434, b/447381176)SavedStateNavEntryDecorator, girişleriSaveableStateHolderile süslediği içinSaveableStateHolderNavEntryDecoratorolarak yeniden adlandırıldı. Decorator,NavEntryDecoratoriçin işlevsel olarak bir fabrika olduğundan işlevden sınıfa da yeniden düzenlendi. (Ie6013, b/447381176)NavDisplayyerineSceneStatekullanan özel gösterimlerin artık dahili olanLocalEntriesToRenderInCurrentScenekompozisyon yerelini kullanması gerekmiyor. (Ic40ef, b/414668196)SceneSetupNavEntryDecoratorverememberSceneSetupNavEntryDecorator(), herkese açık API yüzeyinden kaldırıldı. Bu işlev artık manuel olarak eklemenizi gerektirmeden varsayılan olarak dahil ediliyor. (Ieae42, b/444479133)NavEntry,DialogScene,SinglePaneSceneveSceneStateartık eşittir işlevini kullanıyor. (I96121)- Sahne arayüzünde, NavDisplay için sahneye özel meta veriler eklemeye yarayan yeni bir meta veri alanı bulunur. Bu, bir Sahne'nin
NavDisplayüzerindeki meta verileri (ör. geçişlerle) geçersiz kılmasına olanak tanır. (I1fd96, b/443955625) - Gereksiz genel tür parametresini kaldırarak
rememberNavBackStackimzasını basitleştirin. İşlev artıkvararg elements: NavKeydeğerini kabul ediyor. (I03e45) NavDisplayiçin varsayılan animasyonlar artık tüm platformlardan çağrılabilmelerini sağlayan ortak API'nin bir parçasıdır. (I71af9, b/447147159)- Sınıfın,
NavEntriesoluşturmak için kapsam sağlayan bir Kotlin DSL'si olduğunu doğru şekilde yansıtmak amacıylaEntryProviderBuildersınıfınıEntryProviderScopeolarak yeniden adlandırın. (Ia7465)
Hata Düzeltmeleri
rememberNavBackStack()artık NavKey için polimorfik serileştirmeyi zorunlu kılıyor ve doğru durum geri yüklemesini sağlamak üzere yapılandırılmış özel birSavedStateConfigurationgerektiriyor. KDoc, tüm NavKey alt türlerinin sağlanan SerializersModule'e kaydedilmesi gerektiği şartını yansıtacak şekilde güncellendi. (I6de37,I782f2, b/446664383)
Sürüm 1.0.0-alpha10
24 Eylül 2025
androidx.navigation3:navigation3-*:1.0.0-alpha10 iptal edilir. 1.0.0-alpha10 sürümü bu commit'leri içerir.
API Değişiklikleri
rememberDecoratedNavEntriesile süslenmişNavEntry<T>listesini alan yeni birNavDisplayaşırı yüklemesi ekleyin. (I4025b, b/441940314)DialogScene, yeni bir pakete taşındı. (Ia5840)- Herkese açık API'yi kaldırın
DecorateNavEntry. Bunun yerine, bir NavEntry'yi dekoratör listesiyle sarmak içinrememberDecoratedNavEntrieskullanın. (Id8c09) - Navigation3 kullanıcı arayüzü artık yeni varsayılan
transitionSpecözellikleri sunuyor. (Ibcabd) - Sahneleri yönetmeye yardımcı olacak yeni bir
SceneStatenesnesi eklendi. Bu,SceneStateveNavigationEventStatedeğerlerini alan yeni birNavDisplayaşırı yüklemesi de sağlar. (Idfb46, b/444479133) NavDisplayartıkTransition'nincurrentStatevetargetStateözelliklerine bakarakSceneveScenearasındaki geçişleri özelleştirmenize olanak tanıyor. (I906cc, b/443872322)NavigationEventInfoartıkinterfaceyerineabstract class. Tüm özel uygulamaları sınıftan (ör.data class MyInfo : NavigationEventInfo()) devralacak şekilde güncelleyin. (I1e59c, b/444734264)navigationevent-composeişleyici API'leri güncellendi.NavigationEventHandlerveNavigationBackHandler(ve varyantları) artık yükseltilmişNavigationEventState'leri kabul eden yeni bir aşırı yüklemeyi destekliyor. Basit aşırı yüklemeler (currentInfoalan) korunur ve artık bu yeni durum modelini dahili olarak kullanır. (Ic3251, b/444734264)- Tüm Scene API'leri navigation3-ui'den navigation3-runtime'a taşındı. Bu, artık navigation3-runtime tarafından desteklenen tüm platformlarda kullanılabilecekleri anlamına geliyor. (I431d0, b/444449993)
- Dekore edilecek
NavEntrylistesini alan yeni birrememberDecoratedNavEntriesaşırı yüklemesi eklendi. Girişler, diğer giriş dekoratörleriyle önceden süslenmiş olabilir. (I5a034, b/444230270) - Navigation3 joker karakter türü parametrelerini kaldırma (I02540)
entryProviderDSL'de genel türlerin işlenmesi iyileştirildi. Daha önceandroidx.navigation3.runtime.entryiçe aktarıyorsanız artık bu işlem gerekli değildir. (I299fc)- Yansımaya dayalı
NavBackStackSerializeraşırı yüklemesini Android ile kısıtlayın. Bu, çok platformlu kodda açıkSavedStateConfigurationaşırı yüklemesinin kullanılmasını zorunlu kılarak Android dışı platformlarda örtülü çalışma zamanı serileştirme hatalarını önler. (I73313, b/420443609) - Make
NavigationEvent'sswipeEdgean@IntDef(Icee54, b/443950342) NavBackStackserileştirmesini Android ile kısıtlayın. Bu, Android dışı platformlarda çalışma zamanı hatalarını önler. Çok platformlu durum kaydetme içinrememberNavBackStackile açık birSavedStateConfigurationkullanın. (I1e418, b/420443609)
Hata Düzeltmeleri
- İç içe yerleştirilmiş
NavDisplaytek bir alt girişe sahip olduğunda, tahmini geri gitme sırasında kilitlenme sorunu düzeltildi. (I2cdc0, b/441933162)
Sürüm 1.0.0-alpha09
10 Eylül 2025
androidx.navigation3:navigation3-*:1.0.0-alpha09 iptal edilir. 1.0.0-alpha09 sürümü bu commit'leri içerir.
API Değişiklikleri
DecoratedNavEntryProvider, sağlanan süslemelerin listesiyle (I0fe1c, b/441328236) süslenmiş NavEntry'ler oluşturan ve döndürenrememberDecoratedNavEntriesile değiştirildi.NavBackStackartıkNavKeytürü üzerinde geneldir. Bu sayede uygulamalar ve kitaplıklar, geri yığınları içinNavKeyile sınırlı kalmak yerine özel anahtar türleri tanımlayabilir. (I4d190,Iad2f4, b/420443609)NavBackStackartık@kotlinx.serialization.Serializableolduğundan, işlem sonlandırma ve yapılandırma değişiklikleri sırasında gezinme durumunu ek standart kod olmadan kaydetmek ve geri yüklemek mümkün. (I2c3cf, b/420443609)RememberNavBackStack, tüm platform hedeflerinde sunulmasını sağlamak içincommonMainkonumuna taşındı. (Id69e7, b/420443609)
Hata Düzeltmeleri
NavDisplayartık her birNavEntryöğesini doğruLifecycle.Statekonumuna doğru şekilde taşıyor. (I30aac, b/440145700)NavDisplayöğesinin,NavigationEventkitaplığınınLocalNavigationEventDispatcherOwneraracılığıyla ayarlanan tüm iç içe yerleştirilmişNavigationEventDispatcherOwneröğelerini yoksaymasına neden olan sorun düzeltildi. (I6224a)
Bağımlılık Değişiklikleri
- Navigation3 artık NavigationEvent Alpha08'e bağlıdır.
Sürüm 1.0.0-alpha08
27 Ağustos 2025
androidx.navigation3:navigation3-*:1.0.0-alpha08 iptal edilir. 1.0.0-alpha08 sürümü bu commit'leri içerir.
Yeni Özellikler
Navigation3 Runtimeyapay ürünlerine yeni Kotlin MultiPlatform (KMP) hedefleri eklendi.Navigation3 Runtimeartık toplamda şu platformları destekliyor: JVM (Android ve Masaüstü), Native (Linux, iOS, watchOS, macOS, MinGW) ve Web (JavaScript, WasmJS). (I55078, b/424410398, b/419294028, b/419046226). Not: Bu,Navigation3 UIyapısı için KMP hedefleri sağlamaz. Diğer platformlarda kendi özelNavDisplayuygulamanızı oluşturmanız gerekir. Desteklenmesini istiyorsanız lütfen buradan Jetbrains sorununa oy verin ve ek destek için ilerleme durumunu takip edin.NavDisplayInfonesnesi artık herkese açık veNavDisplayöğesinden görünür girişlerin listesini almak için kullanılabilir. (Ibc91f)
API Değişiklikleri
- Durum geri yükleme işlemini gerçekleştirmek için
rememberNavBackStackile birlikte kullanılacak yeni birNavBackStackSerializereklendi.rememberNavBackStack()artık kendi yapılandırmanızı sağlamak için kullanılabilecek birSavedStateConfigurationde alıyor. (I2f4d2, I4cd58, b/420443609)
Hata Düzeltmeleri
- Gezinmenin yanlış yaşam döngüsü etkinliklerinin tetiklenmesine neden olduğu sorun düzeltildi. (I8bf6d, b/425901162, b/434109022)
Bilinen Sorunlar
- I8bf6d tarafından sunulan ve yaşam döngülerinin sahneler yerine tek tek girişlere göre belirlenmesine neden olan bir hata vardı. Bu hata,
NavEntryöğesine sağlanankeyöğesininStringolmadığı veyaNavEntryöğenizincontentKeyöğesini geçersiz kılıpkeyöğesine eşitlemediği durumlarda yaşam döngüsünün bozulmasına neden oluyordu (Bunu yapmanın, anahtarınızınBundleöğesine kaydedilmesini zorunlu kıldığını unutmayın). Bu hata, bir sonraki sürümde düzeltildi. (b/440145700)
Sürüm 1.0.0-alpha07
13 Ağustos 2025
androidx.navigation3:navigation3-*:1.0.0-alpha07 iptal edilir. 1.0.0-alpha07 sürümü bu commit'leri içerir.
MinSdk Güncellemesi
- AndroidX'in varsayılan minSdk'sı API 21'den API 23'e taşındı (Ibdfca, b/380448311, b/435705964, b/435705223).
API Değişiklikleri
SavedStateNavEntryDecoratorartık durumları kaydetmek ve geri yüklemek içinSaveableStateProvider'de yerleşik olarak bulunanSaveableStateRegistryözelliğini kullanıyor. (If8d9a)predictivePopTransitionSpecartık kaydırma kenarını parametre olarak sağlıyor. Böylece, kullanıcının Tahmini Geri hareketini hangi kenardan başlattığına bağlı olarak geçişi özelleştirebilirsiniz. (I753a8)
Hata Düzeltmeleri
- En son sahne hatırlanmadığı için özel sahnelerin sonsuza kadar yeniden hesaplanmasına neden olan sorun düzeltildi. (I7ba84, b/418153031)
Bağımlılık güncellemesi
- Navigation3 artık Navigation Event
1.0.0-alpha06'e bağlıdır.
Sürüm 1.0.0-alpha06
30 Temmuz 2025
androidx.navigation3:navigation3-*:1.0.0-alpha06 iptal edilir. 1.0.0-alpha06 sürümü bu commit'leri içerir.
Bağımlılık Güncellemesi
- Navigation3 artık Navigation Event
1.0.0-alpha05'e bağlıdır.
Sürüm 1.0.0-alpha05
2 Temmuz 2025
androidx.navigation3:navigation3-*:1.0.0-alpha05 iptal edilir. 1.0.0-alpha05 sürümü bu commit'leri içerir.
Davranış Değişiklikleri
NavEntry'ın durumu artık kesinlikleNavDisplay'a iletilen mevcut dekoratörler listesine dayanmaktadır. Bu, geri yığınında NavEntry'lerin durumunu korumak için birden fazla geri yığını olması durumunda geri yığınlarınız boyunca dekoratörlerin değiştirilmesi gerektiği anlamına gelir. Aksi takdirde, girişler değiştirilmiş gibi değil, çıkarılmış gibi temizlenir. (I7a759, b/428033667)
Sürüm 1.0.0-alpha04
18 Haziran 2025
androidx.navigation3:navigation3-*:1.0.0-alpha04 iptal edilir. 1.0.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
NavEntry.contentartık gizli.NavEntryiçeriğini çağırmak için artık çağırmak içinkeyparametresi gerektirmeyen yeniNavEntry.Content()API'sini çağırın. (Icd0fd, b/420991203)NavEntry.keyartık özel bir alan.NavEntryve ilgili durumları, yenicontentKeyFactorylambda'dan oluşturulan ve varsayılan olarakNavEntry.key'den (I81a6c, b/422001357, b/420991203 I2d7d4, b/420991203, b/422841812) oluşturulan kaydedilebilir bir karma olan yenicontentKeyalanı ile tanımlanmalıdır.
Bağımlılık Değişiklikleri
- Navigation3 artık yeni
androidx.navigationevent.composeyapay ürününe bağlıdır.
Sürüm 1.0.0-alpha03
4 Haziran 2025
androidx.navigation3:navigation3-*:1.0.0-alpha03 iptal edilir. 1.0.0-alpha03 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
Navigation3, artık değiştirilip başka birbackStackörneğiyle değiştirilenbackStacksiçin dekoratör durumlarını temizlemeyecek. (I28a42, b/415076044)
Sürüm 1.0.0-alpha02
23 Mayıs 2025
androidx.navigation3:navigation3-*:1.0.0-alpha02 iptal edilir. 1.0.0-alpha02 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
SavedStateNavEntryDecoratorile ilgili, aynı özellik değerlerine sahip farklı veri sınıflarında çakışmalara neden olan sorun düzeltildi. (b/418070648, Iff4775)- Açık bağımlılıklar bildirilmeden çalıştırıldığında kilitlenmelere neden olan eksik sınıf sorunu düzeltildi. (b/419049149, I4b4ed)
Sürüm 1.0.0-alpha01
20 Mayıs 2025
androidx.navigation3:navigation3-*:1.0.0-alpha01 iptal edilir. 1.0.0-alpha01 sürümü bu commit'leri içerir.
Yeni Özellikler
Navigation3, Jetpack Compose uygulama içi gezinmesini işlemek için özel olarak oluşturulmuş yeni bir gezinme kitaplığıdır. androidx.navigation3.runtime yapısı, yapı taşlarını sağlarken androidx.navigation3.ui yapısı, NavDisplay API'si aracılığıyla kullanıcı arayüzü katmanını sağlar. Geliştiriciler, kendi durumlarını doğrudan NavDisplay composable işlevine sağlayabilir. Bu işlev, içeriği geliştirici durumundaki değişikliklere göre değiştirir.
@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 */ }
})
Daha fazla bilgi için Navigation3 kılavuzuna bakın.