navigation3

  
Navigation 3, Compose ile çalışmak üzere tasarlanmış yeni bir gezinme kitaplığıdır.
Son Güncelleme Kararlı sürüm Sürüm Adayı Beta Sürümü Alfa sürümü
24 Eylül 2025 - - - 1.0.0-alpha10

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ıtların bağımlılıklarını ekleyin:

Groovy

dependencies {
    implementation "androidx.navigation3:navigation3-runtime:1.0.0-alpha10"
    implementation "androidx.navigation3:navigation3-ui:1.0.0-alpha10"
}

Kotlin

dependencies {
    implementation("androidx.navigation3:navigation3-runtime:1.0.0-alpha10")
    implementation("androidx.navigation3:navigation3-ui:1.0.0-alpha10")
}

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 varsa 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.

Yeni sorun oluşturma

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-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

  • NavDisplay ile süslenmiş NavEntry<T> listesini alan yeni bir NavDisplay aşırı yüklemesi ekleyin.rememberDecoratedNavEntries (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çin rememberDecoratedNavEntries kullanın. (Id8c09)
  • Navigation3 kullanıcı arayüzü artık yeni varsayılan transitionSpec özellikleri sunuyor. (Ibcabd)
  • Sahneleri yönetmeye yardımcı olacak yeni bir SceneState nesnesi eklendi. Bu, SceneState ve NavigationEventState değerlerini alan yeni bir NavDisplay aşırı yüklemesi de sağlar. (Idfb46, b/444479133)
  • NavDisplay artık Transition'nin currentState ve targetState özelliklerine bakarak, Scene ve Scene özelliklerine göre geçişleri özelleştirmenize olanak tanıyor. (I906cc, b/443872322)
  • NavigationEventInfo artık interface yerine abstract class. Tüm özel uygulamaları sınıftan (ör. data class MyInfo : NavigationEventInfo()) devralacak şekilde güncelleyin. (I1e59c, b/444734264)
  • navigationevent-compose işleyici API'leri güncellendi. NavigationEventHandler ve NavigationBackHandler (ve varyantları) artık yükseltilmiş NavigationEventState'leri kabul eden yeni bir aşırı yüklemeyi destekliyor. Basit aşırı yüklemeler (currentInfo alan) 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 NavEntry listesini alan yeni bir rememberDecoratedNavEntries aşı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)
  • entryProvider DSL'de genel öğelerin işlenmesi iyileştirildi. Daha önce androidx.navigation3.runtime.entry içe aktarıyorsanız artık bu gerekli değildir. (I299fc)
  • Yansımaya dayalı NavBackStackSerializer aşırı yüklemesini Android ile kısıtlayın. Bu, çok platformlu kodda açık SavedStateConfiguration aşı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's swipeEdge an @IntDef (Icee54, b/443950342)
  • NavBackStack serileştirmesini Android ile kısıtlayın. Bu, Android dışı platformlarda çalışma zamanı hatalarını önler. Çok platformlu durum kaydetme için rememberNavBackStack ile açık bir SavedStateConfiguration kullanın. (I1e418, b/420443609)

Hata Düzeltmeleri

  • İç içe yerleştirilmiş NavDisplay tek bir alt giriş içerdiğinde, 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 dekoratörlerin listesiyle (I0fe1c, b/441328236) süslenmiş NavEntry'ler oluşturan ve döndüren rememberDecoratedNavEntries ile değiştirildi.
  • NavBackStack artık NavKey türü üzerinde geneldir. Bu sayede uygulamalar ve kitaplıklar, geri yığınları için NavKey ile sınırlı kalmak yerine özel anahtar türleri tanımlayabilir. (I4d190,Iad2f4, b/420443609)
  • NavBackStack artık @kotlinx.serialization.Serializable olduğ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 sağlanması için commonMain konumuna taşındı. (Id69e7, b/420443609)

Hata Düzeltmeleri

  • NavDisplay artık her bir NavEntry öğesini doğru Lifecycle.State öğesine doğru şekilde taşıyor. (I30aac, b/440145700)
  • NavDisplay öğesinin, NavigationEvent kitaplığının LocalNavigationEventDispatcherOwner aracılığıyla ayarlanan tüm yerleştirilmiş NavigationEventDispatcherOwner öğelerini yoksaymasına neden olan sorun düzeltildi. (I6224a)

Bağımlılık Değişiklikleri

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 Runtime yapay ürünlerine yeni Kotlin MultiPlatform (KMP) hedefleri eklendi. Navigation3 Runtime artı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 UI yapısı için KMP hedefleri sağlamaz. Diğer platformlarda kendi özel NavDisplay uygulamanızı kullanmanız gerekir. Desteklenmesini istiyorsanız lütfen buradan Jetbrains sorununa oy verin ve ek destek için ilerleme durumunu takip edin.
  • NavDisplayInfo nesnesi artık herkese açık ve NavDisplay öğ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 rememberNavBackStack ile birlikte kullanılacak yeni bir NavBackStackSerializer eklendi. rememberNavBackStack() artık kendi yapılandırmanızı sağlamak için kullanılabilecek bir SavedStateConfiguration de alıyor. (I2f4d2, I4cd58, b/420443609)

Hata Düzeltmeleri

Bilinen Sorunlar

  • I8bf6d tarafından sunulan bir hata nedeniyle yaşam döngüleri, sahneler yerine tek tek girişlere göre belirleniyordu. Bu durum, NavEntry'e sağlanan key'nin String olmadığı veya NavEntry'ün contentKey'ı geçersiz kılıp key'ye eşitlemediği tüm durumlarda yaşam döngüsünün bozulmasına neden oluyordu (Bunu yapmanın, anahtarınızın Bundle'ye 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

API Değişiklikleri

  • SavedStateNavEntryDecorator artık durumları kaydetmek ve geri yüklemek için SaveableStateProvider'de yerleşik olarak bulunan SaveableStateRegistry özelliğini kullanıyor. (If8d9a)
  • predictivePopTransitionSpec artık kaydırma kenarını parametre olarak sağlıyor. Bu sayede, 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

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

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ın durumu artık kesinlikle NavDisplay'ya 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 süslemelerin geri yığınlarınız boyunca 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.content artık gizli. NavEntry içeriğini çağırmak için artık çağırmak için key parametresi gerektirmeyen yeni NavEntry.Content() API'sini çağırın. (Icd0fd, b/420991203)
  • NavEntry.key artık özel bir alan. NavEntry ve ilgili durumları, yeni contentKeyFactory lambda'dan oluşturulan ve varsayılan olarak NavEntry.key'ten oluşturulan kaydedilebilir bir karma olan yeni contentKey alanı ile tanımlanmalıdır (I81a6c, b/422001357, b/420991203 I2d7d4, b/420991203, b/422841812)

Bağımlılık Değişiklikleri

  • Navigation3 artık yeni androidx.navigationevent.compose yapay ü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 bir backStack örneğiyle değiştirilen backStacks iç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

  • SavedStateNavEntryDecorator ile ilgili, aynı özellik değerlerine sahip farklı veri sınıflarında çakışmalara neden olan bir 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 gezinmeyi 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, geliştirici durumundaki değişikliklere göre içeriği 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.