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ü
17 Haziran 2026 1.1.3 - - 1.2.0-alpha04

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.2.0-alpha04"
    implementation "androidx.navigation3:navigation3-ui:1.2.0-alpha04"
}

Kotlin

dependencies {
    implementation("androidx.navigation3:navigation3-runtime:1.2.0-alpha04")
    implementation("androidx.navigation3:navigation3-ui:1.2.0-alpha04")
}

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ı için sürüm notu yok.

Sürüm 1.2.0-alpha04

3 Haziran 2026

androidx.navigation3:navigation3-*:1.2.0-alpha04 iptal edilir. 1.2.0-alpha04 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • ModalBottomSheet gibi iç içe yerleştirilmiş yer paylaşımlarının, üzerindeki yer paylaşımları kaldırıldığında beklenmedik şekilde yeniden animasyon oluşturmasına neden olan yer paylaşımı animasyonu sorunu düzeltildi. (Ia2b9e, b/502624496)

Sürüm 1.2.0-alpha03

19 Mayıs 2026

androidx.navigation3:navigation3-*:1.2.0-alpha03 iptal edilir. 1.2.0-alpha03 sürümü bu commit'leri içerir.

Yeni Özellikler

Navigation 3 artık DeepLinkRequest ve DeepLinkMatcher ile derin bağlantıları destekliyor:

  • DeepLinkRequest DeepLinkUri içeren ve isteğe bağlı bir mimeType veya işlem(yalnızca Android) içeren bir derin bağlantı isteği. Yeni sınıfla birlikte, uri, mimeType veya action ile örnek oluşturmaya yönelik yardımcı işlevler de sunulur. Android platformunda, bir isteği Intent'ten oluşturmaya yardımcı olan bir araç da bulunur. (Iaaac9, b/470282247)

    val uriOnlyRequest = DeepLinkRequest.fromUriString("https://sampledeeplink.com/home")
    val uriAndMimeRequest = DeepLinkRequest.fromUriString(
      "https://sampledeeplink.com/user/profile?id=123",
      "image/png"
    )
    
  • DeepLinkMatcher, DeepLinkRequest ile eşleştirilebilen bir derin bağlantıyı temsil eder. Her eşleştirici örneği, bu derin bağlantıyı destekleyen gezinme anahtarıyla ilişkilendirilir. Bir gezinme anahtarı birden fazla eşleştiriciyle ilişkilendirilebilir. DeepLinkMatcher.match işlevi, eşleşme başarılı olursa ilişkili gezinme anahtarını içeren bir MatchResult döndürür. İki varsayılan DeepLinkMatcher uygulama vardır: UriDeepLinkMatcher URI'ye göre derin bağlantıları eşleştirmek için ve StaticKeyDeepLinkMatcher yalnızca Boolean ile eşleşen DeepLinkMatcher.Filter derin bağlantılarını eşleştirmek için. (I3798e, b/470282247)

  • UriDeepLinkMatcher, DeepLinkMatcher'nin DeepLinkUri öğesini Serializable bir gezinme anahtarıyla eşleştirerek derin bağlantıyı işleyen, kendi içinde tutarlı bir uygulamasıdır. Primitive türlerinin veya Listeler, Diziler ve Setler gibi Primitive koleksiyonlarının derin bağlantı bağımsız değişkenlerini destekler. (I1520b, b/470282247)

    @Serializable
    data class UserKey(val id: Int): NavKey
    
    // declare a deep link supported by UserKey
    val userMatcher = UriDeepLinkMatcher(
      uriPattern = "www.sampledeeplink.com/user?userId={id}",
      serializer = serializer<UserKey>()
    )
    
    // handle a requested deep link with fallback key
    val key = userMatcher.match(deepLinkRequest)?.key ?: HomeKey
    
  • android.net.Uri'in Kotlin çok platformlu sürümü olan DeepLinkUri eklendi (Id4725, b/470282247)

API Değişiklikleri

  • Compose'un compileSdk'siyle eşleşmesi için compileSdk 37 sürümüne yükseltildi.

Hata Düzeltmeleri

  • Birden fazla yer paylaşımı gösterilirken AnimatedBottomSheetSample'nın IllegalArgumentException sorunu düzeltildi. Örnek SceneStrategy artık son OverlayScene olmayan öğeyi doğru şekilde hesaplayacak ve tüm yer paylaşımı sahnelerinin altında gösterecek. (If2281, b/506733412)
  • Android Studio Önizlemelerinde Tahmin Edilen Geri Gitme özelliğini etkinleştirmek için inceleme modundayken no-op NavigationEventHandler'ı kaldıran NavigationEvent bağımlılığı 1.1.1 sürümüne yükseltildi. (I487fd)

Sürüm 1.2.0-alpha02

22 Nisan 2026

androidx.navigation3:navigation3-*:1.2.0-alpha02 iptal edilir. 1.2.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • onBack öğesini onBackCompleted olarak yeniden adlandırın ve iptal edilen geri hareketlerin işlenmesini desteklemek için NavigationBackHandler'a onBackCancelled öğesini ekleyin. (I92741)
  • SceneState kullanırken geri gitme hareketlerini ve tahmin edilen geri gitme özelliğini kolaylaştırmak için NavigationBackHandler ekleyin. Bu sayede geliştiriciler, eski yığın deltalarını manuel olarak hesaplamadan standart geri gezinmeyi ve tahmin edilen hareketleri destekleyen özel kullanıcı arayüzü bileşenlerini daha kolay oluşturabilir. (I6a055)
  • Tahmin edilen geri gitme işleme özelliğiyle SceneState bağlantısını basitleştirmek için rememberNavigationEventState ekleyin. (Iae49c)

Yeni Özellikler

  • Yeni ResultEventBusNavEntryDecorator tarafından sağlanan LocalResultEventBus ile NavEntry'ler arasında sonuçların iletilmesine olanak tanıyan bir ResultEventBus API'si eklendi. Sonuçlarda iletilenler, ResultEventBus#conflateAsState ile durum veya ResultEffect ile sonuç akışı olarak değerlendirilebilir.

Sürüm 1.2.0-alpha01

8 Nisan 2026

androidx.navigation3:navigation3-*:1.2.0-alpha01 iptal edilir. 1.2.0-alpha01 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • LocalNavAnimatedContentScope hizmetine OverlayScene üzerinden erişmek artık IllegalStateException hatasına neden olmayacak. Çünkü OverlayScenes cihazlarına artık no-op LocalAnimatedContentScope sağlanıyor. (I2f00c, b/486067688)

Sürüm 1.1.3

17 Haziran 2026

androidx.navigation3:navigation3-*:1.1.3 iptal edilir. 1.1.3 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • ModalBottomSheet gibi iç içe yerleştirilmiş yer paylaşımlarının, üzerindeki yer paylaşımları kaldırıldığında beklenmedik şekilde yeniden animasyon oluşturmasına neden olan yer paylaşımı animasyonu sorunu düzeltildi. (Ia2b9e, b/502624496)

  • Android Studio önizlemelerinde tahmini geri özelliğini etkinleştirmek için inceleme modundayken no-op NavigationEventHandler öğesini kaldıran NavigationEvent bağımlılığı 1.1.2 sürümüne yükseltildi.

Sürüm 1.1.2

19 Mayıs 2026

androidx.navigation3:navigation3-*:1.1.2 iptal edilir. 1.1.2 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Android Studio Önizlemeleri'nde Tahmini Geri özelliğini etkinleştirmek için inceleme modundayken no-op NavigationEventHandler öğesini kaldıran NavigationEvent bağımlılığı 1.1.1 sürümüne yükseltildi.

Sürüm 1.1.1

22 Nisan 2026

androidx.navigation3:navigation3-*:1.1.1 iptal edilir. 1.1.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • LocalNavAnimatedContentScope hizmetine OverlayScene üzerinden erişmek artık IllegalStateException hatasına neden olmayacak. Çünkü OverlayScenes cihazlarına artık no-op LocalAnimatedContentScope sağlanıyor. (I2f00c, b/486067688)

Sürüm 1.1.0

8 Nisan 2026

androidx.navigation3:navigation3-*:1.1.0 iptal edilir. 1.1.0 sürümü bu commit'leri içerir.

1.1.0 sürümü artık kararlı!

1.0.0 sürümünden beri yapılan önemli değişiklikler

Sahneler Arasındaki Paylaşılan Öğeler - Navigation3 artık sahneleri paylaşılan öğe nesnesi olarak işlemeyi destekliyor. Bu sayede, sahneler değiştiğinde sorunsuz bir geçiş sağlanabilir. Bu özelliği, SharedTransitionScope değerini NavDisplay veya rememberSceneState parametresine ileterek etkinleştirebilirsiniz.

SceneDecoratorStrategy - Sahneleri ortak kullanıcı arayüzü bileşenleriyle süsleme veya sahneler arasında durum paylaşma gibi kullanım alanlarını desteklemek için SceneDecoratorStrategy tanıtıldı.

NavMetadata DSL - Navigation3 artık yeni bir tür güvenli meta veri DSL'si sunuyor. DSL, meta veri haritasına sağlamak istedikleri anahtar ve değer türlerini tanımlamaya olanak tanıyan yeni bir MetadataKey arayüzü kullanır. Bu sayede, NavMetadataKeys geçişleri için yeni NavDisplay eklendi. Böylece, NavDisplay geçiş eklemek için yeni meta veri DSL'siyle kullanılabilirler.

OverlayScene Animasyonları - OverlayScene arayüzünde yeni bir onRemoved askıya alma geri çağırma işlevi var. Bu geri çağırma, sahneyle ilişkili bir anahtar arka yığından kaldırıldıktan sonra ancak kompozisyondan ayrılmadan önce çağrılır. Bu, onRemoved içinde çağrılan çıkış animasyonlarının, yer paylaşımı sahnesi kompozisyondan kaldırılmadan önce tamamlanmasına olanak tanır.

Diğer Değişiklikler - NavDisplay ve rememberSceneState artık then ekleriyle zincirlenen önceki tek SceneStrategy parametresi yerine List<SceneStrategy> parametresini alıyor. Artık EntryProvider DSL aracılığıyla giriş kodu dikkate alınarak meta verileri dinamik olarak ekleyebilirsiniz.

Sürüm 1.1.0-rc01

25 Mart 2026

androidx.navigation3:navigation3-*:1.1.0-rc01 iptal edilir. 1.1.0-rc01 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • NavDisplay artık yer paylaşımlarının altında gösterilen girişlerin Lifecycle değerinin STARTED ile sınırlandırılmasını sağlıyor. Bu, iletişim kutuları kullanılırken dropUnlessResumed gibi API'lerin çalışmaya devam etmesini sağlar. (If209f, b/483966071)
  • NavDisplay'da aynı ekranlar arasında ileri geri gezinmenin ve iki ekran arasındaki animasyonları kesintiye uğratmanın, ekranların z-sırasının yanlış olmasına neden olabildiği sorun düzeltildi. (I4d491, b/459419800)

Sürüm 1.1.0-beta01

11 Mart 2026

androidx.navigation3:navigation3-*:1.1.0-beta01 iptal edilir. 1.1.0-beta01 sürümü bu commit'leri içerir.

Sürüm 1.1.0-alpha05

25 Şubat 2026

androidx.navigation3:navigation3-*:1.1.0-alpha05 iptal edilir. 1.1.0-alpha05 sürümü bu commit'leri içerir.

API Değişiklikleri

  • NavDisplay ve rememberSceneState artık then sonekiyle zincirlenen önceki tek SceneStrategy parametresi yerine List<SceneStrategy> parametresini alıyor. Bu, her iki API'nin de zaten kullandığı List<SceneDecoratorStrategy<T>> ile daha uyumludur. Önceki API'ler kullanımdan kaldırıldı. (I78b2c, b/482108465)
  • Meta veri haritasının belirli bir NavMetadataKey içerip içermediğini kontrol etmek için meta veri #contains operatörü eklendi. (Ic30db, b/485311895)
  • Meta veri DSL'siyle kullanılacak DialogSceneStrategy için NavMetadataKey DialogKey eklendi. (Ic7a26, b/483388817)

Sürüm 1.1.0-alpha04

11 Şubat 2026

androidx.navigation3:navigation3-*:1.1.0-alpha04 iptal edilir. 1.1.0-alpha04 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Navigation3 artık yeni bir tür güvenli meta veri DSL'si sunuyor. DSL, meta veri haritasına sağlamak istedikleri anahtar ve değer türlerini tanımlamaya olanak tanıyan yeni bir MetadataKey arayüzü kullanır. Bu sayede, NavMetadataKey geçişleri için yeni NavDisplay eklendi. Böylece, NavDisplay geçiş eklemek için yeni metadata DSL ile kullanılabilirler. (Ic10ef, Ic049c,b/476213928)

API Değişiklikleri

  • OverlayScene arayüzünde yeni bir onRemoved askıya alma geri araması var. Bu geri çağırma, sahneyle ilişkili bir anahtar arka yığından kaldırıldıktan sonra ancak kompozisyondan ayrılmadan önce çağrılır. Bu, onRemoved içinde çağrılan çıkış animasyonlarının, yer paylaşımı sahnesi kompozisyondan kaldırılmadan önce tamamlanmasına olanak tanır. (I29a72, b/440558061)
  • SceneStrategy, süsleme işlevini yeni bir SceneDecoratorStrategy'e ayırdı. Bu yeni arayüz, sahneleri süslemek için kullanılmalıdır. NavDisplay ve rememberSceneState için SceneDecoratorStrategies eklenmesine olanak tanıyan yeni API'ler var. (If9385, b/477669607, b/477670333)

Hata Düzeltmeleri

  • SharedTransitionLayout öğesinin NavDisplay veya rememberSceneState öğesine aktarılması ve herhangi bir OverlayScene öğesinin kullanılması durumunda kilitlenmeye neden olan hata düzeltildi. Bunun nedeni, SharedTransitionLayout öğesinin yalnızca AnimatedContent öğesinin bir parçası olarak oluşturulan NavEntries öğeleriyle çalışması ve OverlayScene öğelerinin kendi pencerelerinde ayrı ayrı oluşturulmasıdır. (I1bb76, b/478664101)

Bağımlılık Güncellemesi (Dependency Update)

  • Navigation3 1.0.1 sürümünden itibaren: Navigation3 artık NavigationEvent 1.0.2 sürümüne bağlıdır. Bu düzeltme, AndroidStudio önizlemeleri sırasında NavDisplay kullanılması nedeniyle oluşan IllegalStateException sorununu giderir. (Id7212, b/477149762)

Sürüm 1.1.0-alpha03

28 Ocak 2026

androidx.navigation3:navigation3-*:1.1.0-alpha03 iptal edilir. 1.1.0-alpha03 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Artık EntryProvider DSL aracılığıyla giriş kodunu dikkate alarak meta verileri dinamik olarak ekleyebilirsiniz. (I942fb, b/474416976)

Sürüm 1.1.0-alpha02

14 Ocak 2026

androidx.navigation3:navigation3-*:1.1.0-alpha02 iptal edilir. 1.1.0-alpha02 sürümü bu commit'leri içerir.

Yeni Özellikler

  • SceneStrategy artık yeni bir calculatedScene(Scene) işleviyle sahneleri iç içe yerleştirmeyi destekliyor. Bu sayede SceneStrategy'lar, diğer sahnelere ek işlevler sunacak şekilde özelleştirilebilir. (I5df7c,b/440333896)

Sürüm 1.1.0-alpha01

3 Aralık 2025

androidx.navigation3:navigation3-*:1.1.0-alpha01 iptal edilir. 1.1.0-alpha01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Navigation3 artık sahnelerin paylaşılan öğe nesnesi olarak ele alınmasını destekliyor. Bu sayede, sahneler değiştiğinde sorunsuz bir geçiş sağlanabilir. Bu özelliği, SharedTransitionScope değerini NavDisplay veya rememberSceneState parametresine ileterek etkinleştirebilirsiniz. (I15868)

Sürüm 1.0

Sürüm 1.0.1

11 Şubat 2026

androidx.navigation3:navigation3-*:1.0.1 iptal edilir. 1.0.1 sürümü bu commit'leri içerir.

Bağımlılık Güncellemesi (Dependency Update)

  • Navigation3 artık NavigationEvent 1.0.2'ye bağlıdır. Bu düzeltme, AndroidStudio önizlemeleri sırasında NavDisplay kullanılması nedeniyle oluşan IllegalStateException sorununu giderir. (Id7212, b/477149762)

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 navigasyona yönelik ilk yaklaşımıdır.
  • Daha fazla bilgi için duyuru blog yayınımızı inceleyin, 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

  • NavDisplay artık Scene düzeyinde bir LocalLifecycleOwner ayarlıyor. Bu sayede sahne yazarları, Lifecycle.State öğesinin RESUMED olup olmadığını kontrol ederek tüm geçişlerin tamamlanıp tamamlanmadığını belirleyebiliyor. NavEntry düzeyindeki LocalLifecycleOwner davranışında değişiklik yapılmadı: Geçiş devam ediyorsa LocalLifecycleOwner, STARTED ile sınırlandırılmaya devam eder. Ayrıca, söz konusu NavEntry, geri yığından çıkarılıp animasyonla dışarı çıkarılıyorsa CREATED ile sınırlandırılı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

  • SceneStrategyScope artık yalnızca bağımsız olarak SceneStrategy ve döndürülen Scene öğelerini 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ütfen rememberSceneState() kullanın. (I8440c, b/451679047)

Hata Düzeltmeleri

  • SceneStrategy ile then'nin zincirlenmesi sırasında oluşan sonsuz döngü sorunu düzeltildi. (Iba3f0, b/450323470)
  • backStack öğesinin NavDisplay öğesiyle değiştirilmesi ve animasyonların kullanılması sırasında 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 üzerindeki calculateScene yöntemi artık @Composable değil. Bunun yerine, bu çalışmayı SceneStrategy yönteminizi (yani rememberMySceneStrategy() yönteminde) oluşturma aşamasına taşıyabilirsiniz. Bu yöntem, herhangi bir rememberSaveable değerinin veya anahtar remember ifadelerinin yaşam süresini doğru değerlere göre tanımlamanıza olanak tanır. (If1733, b/448709506)
  • SceneStrategy.calculateScene için onBack parametresi, 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ıyla SceneStrategyScope'nin yeni alıcı kapsamına taşındı. (I3aea3, b/448460407)
  • NavDisplay ve SceneStrategy'ye iletilen onBack lambda'sı, birden fazla girişin ne zaman açılması gerektiğini belirten bir count: Int parametresi sağlamaz. Bunun yerine, () -> Unit lambda, nadir durumlarda sahne istekleriniz birden fazla girişin gösterilmesini istediğinde art arda birden çok kez çağrılacak. (Idedb5, b/446989346)
  • NavEntryWrapper sınıfını kaldırın ve işlevini, yeni içeriklerle NavEntry alan yeni bir ikincil oluşturucuya sahip nihai bir NavEntry sınıfıyla değiştirin. Bu sayede, bir girişi yeni içerikle sarmalama özelliği desteklenmeye devam edecektir. (I7da2a, b/444447130)
  • navEntryDecorator işlevi kaldırıldı ve yerine artık herkese açık olan ve alt sınıflara ayrılabilen NavEntryDecorator sınıfı eklendi. navEntryDecorator işlevi, NavEntryDecorator oluşturup döndürüyordu. (If81f8, b/444447434, b/447381176)
  • SavedStateNavEntryDecorator, girişleri SaveableStateHolder ile süslediği için SaveableStateHolderNavEntryDecorator olarak yeniden adlandırıldı. Dekoratör, NavEntryDecorator için işlevsel olarak bir fabrika olduğundan işlevden sınıfa da yeniden düzenlendi. (Ie6013, b/447381176)
  • NavDisplay yerine SceneState kullanan özel gösterimlerin artık dahili olan LocalEntriesToRenderInCurrentScene kompozisyon yerelini kullanması gerekmiyor. (Ic40ef, b/414668196)
  • SceneSetupNavEntryDecorator ve rememberSceneSetupNavEntryDecorator(), genel API yüzeyinden kaldırıldı. Bu işlev artık manuel olarak eklemenizi gerektirmeden varsayılan olarak dahil edilmektedir. (Ieae42, b/444479133)
  • NavEntry, DialogScene, SinglePaneScene ve SceneState artık eşittir işlevini kullanıyor. (I96121)
  • Sahne arayüzünde, NavDisplay için sahneye özel meta veriler eklemeye yönelik 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 rememberNavBackStack imzasını basitleştirin. İşlev artık vararg elements: NavKey değerini kabul ediyor. (I03e45)
  • NavDisplay iç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, NavEntries oluşturmak için kapsam sağlayan bir Kotlin DSL olduğunu doğru şekilde yansıtmak amacıyla EntryProviderBuilder sınıfını EntryProviderScope olarak 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 bir SavedStateConfiguration gerektiriyor. 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

  • rememberDecoratedNavEntries ile süslenmiş NavEntry<T> listesini alan yeni NavDisplay aşırı yüklemesi ekleyin. (I4025b, b/441940314)
  • DialogScene, yeni bir pakete taşındı. (Ia5840)
  • Genel API'yi kaldırın DecorateNavEntry. Bunun yerine, NavEntry'yi bir dizi dekoratörle sarmalamak 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ı olması için 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'ın currentState ve targetState özelliklerine bakarak, Scene ve Scene arasındaki 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 nedenle, artık navigation3-runtime tarafından desteklenen tüm platformlarda kullanılabilirler. (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'si için genel türlerin işlenmesi iyileştirildi. Daha önce androidx.navigation3.runtime.entry içe aktarıyorsanız artık bu işlem gerekli değildir. (I299fc)
  • Yansımaya dayalı NavBackStackSerializer aşırı yüklenmesini 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 olmayan 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şe sahip olduğunda, tahmin edilen 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ünde 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. Bu özelliğin desteklenmesini istiyorsanız lütfen Jetbrains sorunu için buradan 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 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ğlanan key öğesinin String olmadığı veya NavEntry öğenizin contentKey öğesini geçersiz kılıp key öğesine eşitlemediği (bunu yapmanın anahtarınızın Bundle öğesine kaydedilmesini zorunlu kıldığını unutmayın) tüm durumlarda yaşam döngüsünün bozulmasına neden oluyordu. 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 kenarı kaydırma hareketi parametre olarak sağlanıyor. Bu sayede, kullanıcının Tahmin Edilen Geri Gitme 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 (Dependency Update)

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'ye iletilen mevcut dekoratörler listesine dayanmaktadır. Bu nedenle, eski yığında birden fazla eski yığın olması durumunda, eski yığındaki NavEntry'lerin durumunu korumak için eski yığınlarınız boyunca dekoratörlerin değiştirilmesi gerekir. 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 NavEntry.key'den (I81a6c, b/422001357, b/420991203 I2d7d4, b/420991203, b/422841812) oluşturulan ve kaydedilebilen bir karma ile varsayılan olarak ayarlanan yeni contentKey alanı ile tanımlanmalıdır.

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

  • Navigation3 artık yeni androidx.navigationevent.compose yapay nesnesine 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 gezinme işlemlerini yönetmek 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 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.