Navigasyon

Gezinme, hedeflerin Parçalar, Etkinlikler veya diğer bileşenler olarak uygulanmış olmasından bağımsız olarak, Android uygulaması içindeki "hedefler" arasında gezinmeye yönelik bir çerçevedir.
Son Güncelleme Kararlı Sürüm Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
20 Mart 2024 2.7.7 - - 2.8.0-alpha05

Bağımlılıkları bildirme

Navigasyon'a bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.

Uygulamanızın veya modülünüz için build.gradle dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:

Modern

dependencies {
  def nav_version = "2.7.7"

  // Java language implementation
  implementation "androidx.navigation:navigation-fragment:$nav_version"
  implementation "androidx.navigation:navigation-ui:$nav_version"

  // Kotlin
  implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
  implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

  // Feature module Support
  implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"

  // Testing Navigation
  androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"

  // Jetpack Compose Integration
  implementation "androidx.navigation:navigation-compose:$nav_version"
}

Kotlin

dependencies {
  val nav_version = "2.7.7"

  // Java language implementation
  implementation("androidx.navigation:navigation-fragment:$nav_version")
  implementation("androidx.navigation:navigation-ui:$nav_version")

  // Kotlin
  implementation("androidx.navigation:navigation-fragment-ktx:$nav_version")
  implementation("androidx.navigation:navigation-ui-ktx:$nav_version")

  // Feature module Support
  implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version")

  // Testing Navigation
  androidTestImplementation("androidx.navigation:navigation-testing:$nav_version")

  // Jetpack Compose Integration
  implementation("androidx.navigation:navigation-compose:$nav_version")
}

Safe Args

To add Safe Args to your project, include the following classpath in your top level build.gradle file:

Groovy

buildscript {
    repositories {
        google()
    }
    dependencies {
        def nav_version = "2.7.7"
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
    }
}

Kotlin

buildscript {
    repositories {
        google()
    }
    dependencies {
        val nav_version = "2.7.7"
        classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version")
    }
}

You must also apply one of two available plugins.

To generate Java language code suitable for Java or mixed Java and Kotlin modules, add this line to your app or module's build.gradle file:

Groovy

plugins {
  id 'androidx.navigation.safeargs'
}

Kotlin

plugins {
    id("androidx.navigation.safeargs")
}

Alternatively, to generate Kotlin code suitable for Kotlin-only modules add:

Groovy

plugins {
  id 'androidx.navigation.safeargs.kotlin'
}

Kotlin

plugins {
    id("androidx.navigation.safeargs.kotlin")
}

You must have android.useAndroidX=true in your gradle.properties file as per Migrating to AndroidX.

Kotlin uzantılarını kullanma hakkında bilgi edinmek için ktx belgelerini inceleyin.

Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme Bağımlılıkları Ekleme bölümüne bakın.

Geri bildirim

Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa 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 sayı oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerine bakın.

Sürüm 2.8

Sürüm 2.8.0-alpha05

20 Mart 2024

androidx.navigation:navigation-*:2.8.0-alpha05 yayınlandı. 2.8.0-alpha05 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Artık bağımsız değişkenleri, defaultValue hizmetine güvenmeden startDestination rotasında doğrudan NavGraph startDestination öğesine aktarabilirsiniz. Bu, iç içe yerleştirilmiş NavGraph startDestinations için de geçerlidir. (I0e0b5, b/109505019, b/188693139)

API Değişiklikleri

  • Liste, diziler, haritalar gibi koleksiyona dayalı bağımsız değişkenler için NavType<T> alt sınıfı olan yeni soyut CollectionNavType<T> sınıfı eklendi. (Ic6d63, b/188693139)
  • Varsayılan NavType dizilerinin tümü (IntArrayType, LongArrayType, FloatArrayType, BoolArrayType ve StringArrayType) artık CollectionNavType türünde (Idcf79, b/188693139)
  • NavType artık aynı türdeki iki değerin birbirine eşit olup olmadığını belirleyen yeni bir açık valueEquals API sunuyor. (I6cb97, b/327229511)

Hata Düzeltmeleri

  • Derin bağlantılardaki sorgu parametreleri, artık dize tabanlı NavTypes için geçerli değerler olarak bağımsız değişken adının etrafında küme parantezi biçimindeki değerlere (ör. {argName}) izin veriyor. Bu değişiklik, böyle bir değerin tüm türler için geçersiz sayılacağı (veya değer bulunmadığı) sorunu düzeltir. (I18302, b/327274038)
  • navigate veya popBackStack gibi rotaları destekleyen NavController işlevleri artık NavTypes dizisinin bağımsız değişkenleriyle doldurulmuş rotaları düzgün bir şekilde eşleştirebilir. (Iea805, b/327229511)

Sürüm 2.8.0-alpha04

6 Mart 2024

androidx.navigation:navigation-*:2.8.0-alpha04 yayınlandı. 2.8.0-alpha04 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Artık Gezinme Oluşturma bölümünde, composable ve/veya navigation işlevlerinin başlatma işleminin bir parçası olarak tanımlayarak geçişleriniz için SizeTranform belirtebilirsiniz. (I91062, b/296912651)

Hata Düzeltmeleri

  • Sistem Geri Dönüş hareketini hareket olmadan kullanırken Oluşturma Navigasyonu'nda NavHost öğesinin geçişi düzgün şekilde gösterememesine neden olan sorun düzeltildi. (Buzullar, b/325998468)

Sürüm 2.8.0-alpha03

21 Şubat 2024

androidx.navigation:navigation-*:2.8.0-alpha03 yayınlandı. 2.8.0-alpha03 sürümü bu kayıtları içerir.

API Değişiklikleri

  • NavBackStackEntry.savedStateHandle ana iş parçacığında olması gereken kodu kullandığından artık @MainThread olarak işaretlendi. (Ibb988, b/299523245)

Hata Düzeltmeleri

  • Navigasyon'da, ilişkili girişin ViewModel değeri, kaydedilen durumunun parçası olmadığı için NavGraph ViewModel'in çok erken DESTROYED olmasına neden olan bir sorun düzeltildi. (Ib6bb7, b/317581849)

Bağımlılık Güncellemesi

Sürüm 2.8.0-alpha02

7 Şubat 2024

androidx.navigation:navigation-*:2.8.0-alpha02 yayınlandı. 2.8.0-alpha02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Gezinme Yazma, artık oluşturma animasyonundaki yeni SeekableTransitionState API'leri aracılığıyla Tahmine dayalı uygulama içi desteği sağlar. Bu, işlemi tamamlanan hareketle yapmaya veya iptal etmeye karar vermeden önce özel Geçişinizle önceki hedefi görmek için geri hareketini kullanmanıza olanak tanır. (I8b8e9)

Sürüm 2.8.0-alpha01

24 Ocak 2024

androidx.navigation:navigation-*:2.8.0-alpha01 yayınlandı. 2.8.0-alpha01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Bir hedefte birden fazla saveState çağrısının kaydedilmesine neden olan ancak yalnızca ilk durumun geri yüklenebildiği BackStackState sızıntısı düzeltildi. (I598b0, b/309559751)
  • Uygulama çubuklarının başlığını doldurmak için NavigationUI yardımcıları kullanıldığında Dize olmayan bağımsız değişkenlerin düzgün görüntülenmemesine neden olan sorun düzeltildi. (#636, b/316676794)

Bağımlılık Güncellemesi

  • Gezinme menüsü oluşturma işlemi artık Compose 1.7.0-alpha01'ın beklenmedik ölçek animasyonuna neden olabilecek bir sorunu düzeltmesine bağlıdır. (b/297258205)

Harici Katkı

  • Uygulama çubuklarının başlığını doldurmak için NavigationUI yardımcılarını kullanırken Dize olmayan bağımsız değişkenlere ilişkin görüntüleme sorununu düzelttiğiniz için SimonMarquis'e teşekkür ederiz.

Sürüm 2.7.7

Sürüm 2.7.7

7 Şubat 2024

androidx.navigation:navigation-*:2.7.7 yayınlandı. 2.7.7 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Gezinme 2.8.0-alpha01 üzerinden geri alındı: Tek bir NavBackStackEntry üzerinde birden fazla saveState() çağrısının birden çok durumun kaydedilmesine neden olan ancak yalnızca ilk kaydedilen durumun geri yüklenebildiği BackStackState sızıntısı düzeltildi. (I598b0, b/309559751)
  • Gezinme 2.8.0-alpha01 üzerinden geri alındı: Uygulama çubuklarının başlığını doldurmak için NavigationUI yardımcıları kullanıldığında Dize olmayan bağımsız değişkenlerin düzgün görüntülenmemesine neden olan sorun düzeltildi. (#636, b/316676794)

Harici Katkı

  • Uygulama çubuklarının başlığını doldurmak için NavigationUI yardımcılarını kullanırken Dize olmayan bağımsız değişkenlere ilişkin görüntüleme sorununu düzelttiğiniz için SimonMarquis'e teşekkür ederiz.

Sürüm 2.7.6

Sürüm 2.7.6

13 Aralık 2023

androidx.navigation:navigation-*:2.7.6 yayınlandı. 2.7.6 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • NavGraph equals() işlevi artık yalnızca çağıran değil diğer grafiğin düğümlerini doğru şekilde dikkate alıyor. Bu değişiklik, farklı kimliklere sahip düğümlere sahip grafiklerin artık eşit olarak kabul edilmemesini sağlar (I401cb, b/311414915).

Sürüm 2.7.5

Sürüm 2.7.5

1 Kasım 2023

androidx.navigation:navigation-*:2.7.5 yayınlandı. 2.7.5 sürümü bu kayıtları içerir.

Performans iyileştirmeleri

  • İki grafiğin karşılaştırmasının performansı (hem zaman hem de ayırma sayısı açısından) büyük ölçüde artırıldı. Bu da yeni grafiği mevcut grafikle dahili olarak karşılaştıran setGraph gibi çağrıların çok daha hızlı olacağı ve atlanan kare sayısının azalacağı anlamına gelir. Bu iyileştirmeyi sağlayan kapsamlı analiz için teşekkür ederiz Michał Z. (I6ad62)
  • NavHost, güncellenen durumu okumak için ikinci geçişin beklenmesini beklemek yerine ilk beste geçişinde başlangıç hedefini oluşturur. (I439a7, b/304852206)

Hata Düzeltmeleri

  • setGraph işlevini tam olarak aynı grafikle birden fazla kez çağırırsanız yalnızca grafiğinizde iki hedefi birbirine bağlayan bir işlem içeren bir hedef varsa arka yığınınızın açılmasına neden olan sorun düzeltildi. (Ieaed7)
  • Hızlı bir şekilde arka arkaya gidilip kapatılan iletişim kutuları artık NavController.visibleEntries listesine sızdırılmayacak. (I67586, b/287969970)
  • Artık bir giriş ve ardından yapılandırma değişikliği yapıldığında, saveState yanlışsa girişin ViewModel öğesi artık düzgün bir şekilde temizlenecek. (Idf242, b/298164648)
  • Arka yığın tamamen boş olduğunda, yapılandırma değişikliğinden önce arka yığın tamamen boşsa veya yalnızca gelen Intent FLAG_ACTIVITY_NEW_TASK işareti ayarlandığında setGraph çağrısı yapıldığında NavController ürününün aynı derin bağlantıyı birden fazla kez işlemesine neden olan sorun düzeltildi. (I73c7f)

Bağımlılık Güncellemeleri

  • Parçalarla gezinme artık Fragment 1.6.2'ye bağlıdır ve clearBackStack çağrılırken iç içe yerleştirilmiş parçaların ViewModel örneklerinin temizlenememesine neden olan sorun düzeltildi.

Sürüm 2.7.4

Sürüm 2.7.4

4 Ekim 2023

androidx.navigation:navigation-*:2.7.4 yayınlandı. 2.7.4 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Bu tam bağımsız değişkenleri kullanan belirli bir girişe geri dönerek popBackStack içinde bulunan destekle eşleşen bağımsız değişkenlere sahip rotaları kullanma için popUpTo desteği eklendi. (I731f4, b/299255572)

Hata Düzeltmeleri

  • popUpTo ile başka bir rota izleme sırasında navigasyonu kesintiye uğratmanın FragmentNavigator uygulamasının kilitlenmesine neden olması sorunu düzeltildi. (I3c848, b/301887045)
  • Sistem geri basmasının, currentDestination öğesinin görüntülenen Parçayla eşleşecek şekilde doğru şekilde güncellenmemesine neden olduğu sorun düzeltildi. (Id0d6c, b/289877514)
  • DialogFragment yaşam döngüsü artık üzerindeki iletişim kutusu kapatıldığında RESUMED durumuna düzgün şekilde geçecek. (I88f0d, b/301811387)

Sürüm 2.7.3

Sürüm 2.7.3

20 Eylül 2023

androidx.navigation:navigation-*:2.7.3 yayınlandı. 2.7.3 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Parçalarla Gezinme özelliğinde visibleEntries listesinin yanlış girişler içermesine neden olan bir sorun düzeltildi. (I5caa9, b/288520638)
  • Kayan Pencere hedefinin (ör.Dialogs, Bottomsheets vb.) hiçbir zaman RESUMED Yaşam Döngüsü geri çağırmamasına neden olan sorun düzeltildi. (I3b866, b/287505132)

Sürüm 2.7.2

Sürüm 2.7.2

6 Eylül 2023

androidx.navigation:navigation-*:2.7.2 yayınlandı. 2.7.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Gezinme artık Yaşam Döngüsü 2.6.2'ne bağlıdır. rememberSaveable ile Gezinme Yazma'nın NavHost arasındaki etkileşimi düzeltir. Bu etkileşim, rememberSaveable hedeflerin ve ViewModel'ye ait tüm SavedStateHandle örneklerinin işlem ölümü ve yeniden oluşturulduktan sonra düzgün şekilde geri yüklenmesine neden olur. (b/298059596, b/289436035)
  • Gezinme Oluşturma aracında, kısmen gizlenmiş iletişim kutularının (ör. en üstteki iletişim kutusu değil) STARTED durumunda değil, CREATED Yaşam döngüsü durumunda yer aldığı birden fazla iletişim kutusunun aynı anda gösterilmesiyle ilgili sorun düzeltildi. (aosp/2728520, b/289257213)
  • Gezinme Yazma'da aynı anda birden fazla iletişim kutusunun gösterilmesi sorunu giderildi. Bu durumda en üstteki iletişim kutusu kapatıldığında, doğru şekilde RESUMED konumuna taşınmak yerine en üstteki yeni iletişim kutusu STARTED Yaşam Döngüsü durumunda takılır. (aosp/2629401, b/286371387)
  • Gezinme Güvenli Arg'lar, gerçekte yürütülmüyorsa artık görevini istekli bir şekilde somutlaştırmamaktadır. (I0e385, b/260322841)

Bağımlılık Güncellemesi

  • Gezinme menüsünü kullanarak oluşturma özelliği artık Compose 1.5.1'e bağlıdır.

Sürüm 2.7.1

Sürüm 2.7.1

23 Ağustos 2023

androidx.navigation:navigation-*:2.7.1 yayınlandı. 2.7.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Oluşturma işleminde gezinmede, Scaffold kullanılırken Lifecycle.State.DESTROYED ViewModel özelliğine erişmeye çalışırken hata almanıza yol açan sorun giderildi. (I1dc11, b/268422136)

Sürüm 2.7.0

Sürüm 2.7.0

9 Ağustos 2023

androidx.navigation:navigation-*:2.7.0 yayınlandı. 2.7.0 sürümü bu kayıtları içerir.

2.6.0'dan sonraki önemli değişiklikler

Eşlik eden sanatçıdan animasyonlar

AnimatedContent kararlı olduğu için kodu Eşlikli Gezinme Animasyonu'ndan tekrar Navigasyon Oluşturma'ya taşıyabildik.

Bu, AnimatedNavHost ürününde mevcut olan özel geçişleri ayarlama desteğinin doğrudan NavHost ürününde desteklendiği anlamına gelir.

Refakatçi Navigasyon Animasyonu'nda başka değişiklik yapılmayacak ve kısa süre içinde, Acompanist Compose'a geri dönmeye yönelik talimatlarla birlikte resmî olarak kullanımdan kaldırılacak. Ancak, en yeni Acompanist alfa sürümünü (0.31.2-alpha) kullanıyorsanız başka API değişikliği yapılmasına gerek kalmadan taşıma rehberinin tam tersi olacaktır. (b/197140101)

Hata Düzeltmeleri

  • Gezinme Üzerinden Oluşturma'daki NavHost, artık Etkinlik DURDURULDU ve DEVAM ETTİLDİĞİNDE DEVRE DIŞI BIRAKILDIKTAN SONRA, sistem geri çağrılarına doğru şekilde müdahale ediyor. (Icb6de, b/279118447)

Bağımlılık Güncellemeleri

  • Gezinme artık 1.1.0 tarihinden itibaren 1.5.0 oluşturma işlemine bağlıdır.

Sürüm 2.7.0-rc01

26 Temmuz 2023

androidx.navigation:navigation-*:2.7.0-rc01 yayınlandı. 2.7.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • NavHost öğesinin bir parçası olarak oluşturulan EnterTransition ve ExitTransition lambdalarının, NavHost besteden kaldırıldıktan sonra bile bellekte kalabilmesi sorunu düzeltildi. (I893d0)

Bilinen Sorunlar

  • Navigasyon 2.6.x'te, popUpTo ile gezinirken IllegalArgumentException hatasına neden olabilen bir sorun var. Burada önerilen öneriye benzer şekilde grafiğinizi yeniden yapılandırarak bu istisnanın önüne geçebilirsiniz. (b/287133013)

Sürüm 2.7.0-beta02

28 Haziran 2023

androidx.navigation:navigation-*:2.7.0-beta02 yayınlandı. 2.7.0-beta02 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Oluşturma işleminde gezinme, popUpTo seçeneğiyle gezinmeyi kullanan özel geçişler için artık doğru z sırasına sahip.(/Ib1c3a, b/285153947)

Sürüm 2.7.0-beta01

7 Haziran 2023

androidx.navigation:navigation-*:2.7.0-beta01 yayınlandı. 2.7.0-beta01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Navigasyon Oluşturma'daki NavHost özelliği, Activity STOPPED ve RESUMED sonrasında bile sistem geri çağrılarına doğru şekilde müdahale ediyor. (Icb6de, b/279118447)

Sürüm 2.7.0-alpha01

24 Mayıs 2023

androidx.navigation:navigation-*:2.7.0-alpha01 yayınlandı. 2.7.0-alpha01 sürümü bu kayıtları içerir.

Eşlik eden sanatçıdan animasyonlar

AnimatedContent kararlı olduğu için kodu Eşlikli Gezinme Animasyonu'ndan tekrar Navigasyon Oluşturma'ya taşıyabildik.

Bu, AnimatedNavHost ürününde mevcut olan özel geçişleri ayarlama desteğinin doğrudan NavHost ürününde desteklendiği anlamına gelir.

Refakatçi Navigasyon Animasyonu'nda başka değişiklik yapılmayacak ve kısa süre içinde, Acompanist Compose'a geri dönmeye yönelik talimatlarla birlikte resmî olarak kullanımdan kaldırılacak. Ancak, en yeni Acompanist alfa sürümünü (0.31.2-alpha) kullanıyorsanız başka API değişikliği yapılmasına gerek kalmadan taşıma rehberinin tam tersi olacaktır. (b/197140101)

Hata Düzeltmeleri

  • Gezinme 2.6.0-rc02 bölümünde: popUpTo ile gezinmenin ve görünümü yeniden oluşturmadan bir parçanın arka yığından çıkarılmasının sistemin tekrar çalışmayı durdurmasına neden olduğu Parçalarda Gezinmeyle ilgili sorun giderildi. (Ieb8d4, b/281726455)

Bağımlılık Güncellemeleri

  • Gezinme artık 1.5.0-beta01 oluşturma uygulamasına bağlıdır.

Sürüm 2.6.0

Sürüm 2.6.0

7 Haziran 2023

androidx.navigation:navigation-*:2.6.0 yayınlandı. 2.6.0 sürümü bu kayıtları içerir.

2.5.0'dan bu yana Navigasyon'da yapılan önemli değişiklikler

  • NavBackStackEntry öğesinin arguments ve OnDestinationChangedListener öğesine iletilen arguments, artık hedefe gittiğinizde oluşturulan sabit bağımsız değişkenlerin yalnızca bir kopyasıdır. Bu, söz konusu Paketlerde yapılan değişikliklerin arguments veya diğer OnDestinationChangedListener örneklerine sonraki erişimlerde yansıtılmayacağı anlamına gelir.
  • NavDeepLink artık diziler için varsayılan değerleri desteklemektedir. Böylece, bağımsız değişkenin dizi türüyle eşlenecek tekrarlanan sorgu parametreleri desteklenir. NavType artık ayrıştırılan iki değeri birleştirmek için geçersiz kılınabilen bir varsayılan yöntem de içeriyor.
  • NavType özel alt sınıfları artık serializeAsValue öğesini geçersiz kılarak bir değeri Dize haline getirebilir. Böylece, hem serileştirme hem de seri durumdan kaldırma (parseValue aracılığıyla) işlemi tamamen NavType sınıfına dahil edilir. StringType, belirtilen String üzerinde Uri.encode çağrısı yapmak için artık bu yöntemi geçersiz kılar.

2.5.0 sürümünden sonra, Gezinme'de Yazma özelliğinde yapılan önemli değişiklikler

  • Bir composable NavHost ile önizlenirken artık NavGraph'in startDestination değeri varsayılan olarak gösterilecektir.
  • NavController.popBackStack(route), NavController.getBackStackEntry(route), NavController.clearBackStack(route) artık kısmen veya tamamen doldurulmuş bağımsız değişkenlere sahip rotaları destekliyor. Bağımsız değişkenlerin, girişin bağımsız değişkenleriyle tam bir eşleşme olması gerektiğini unutmayın.
  • navDeepLink Kotlin DSL kullanarak boş bir NavDeepLink oluşturma girişiminde bulunulması durumunda artık derin bağlantının geçerli olması için URI, işlem ve/veya mime türü gerektiğini belirten bir hata analizi uyarısı gösterilecektir.

2.5.0'dan bu yana Parçalarla Gezinme özelliğinde yapılan önemli değişiklikler

  • NavHostFragment artık sistemin geri düğmesine müdahale etmez. Bu, temel FragmentManager öğesinin sistemi geri işleyebilmesini sağlar. Bu işlem, Parça 1.7.0-alpha01 ve sonraki sürümlerin Android U cihazlarda Uygulama İçi Tahmine Dayalı Geri animasyonu sağlamasına olanak tanır.
  • Parçalarla Gezinme kullanılırken FragmentManager öğesinin arka yığınına bir parça ekleyen bir FragmentTransaction işlemini manuel olarak yapmaya çalıştığınızda IllegalArgumentException hatası döndürülür. Parçaları her zaman navigate() API'si aracılığıyla eklemeniz gerekir.
  • app:data ve gezinme XML dosyasının etkinlik öğesindeki app:dataPattern özelliklerindeki yer tutucu olarak tam ${applicationId} dizesini kullanırken, yer tutucu, şişirme sonrasında otomatik olarak bağlamın packageName ile doldurulur.
  • FragmentNavigator, NavBackStackEntries ürününe gidip açılırken geçiş API'lerini artık kullanıyor. Yani, NavBackStackEntry Lifecycle artık son Lifecycle.State öğesini taşımadan önce giren ve çıkan parça özel efektlerinin tamamlanmasını bekleyeceği anlamına gelir.
  • DialogFragmentNavigator, NavBackStackEntries ürününe gidip açılırken geçiş API'lerini artık kullanıyor. Bu, NavBackStackEntry Lifecycle öğesinin DESTROYED paketine geçmeden önce DialogFragment Lifecycle öğesinin DESTROYED öğesine geçmesini bekleyeceği anlamına gelir.
  • NavHostFragment artık yalnızca onCreate() sonrasına değil, NavHostFragment öğesi FragmentManager öğesine eklenir eklenmez hemen sonra NavController öğesini almanıza izin veriyor.
  • Navigasyon'un Dinamik Özellik Modülleri desteği artık ayrıntılı Play Özellik Dağıtımı Kitaplığı'na bağlıdır.
  • Navigasyon Güvenli Aramaları artık Android Gradle Eklentisi'nin 7.3.0 sürümüne bağlıdır. Bu, ürünün artık yalnızca 7.3.0 ve üzeri sürümlerle uyumlu olduğu anlamına gelir.

2.5.0 sürümünden sonra NavigationUI'da yapılan önemli değişiklikler

  • NavigationUI, bir gezinme grafiğinin kimliğini AppBarConfiguration öğesine aktarırken (örneğin, Menu aracılığıyla) grafikteki her hedefi yanlış bir şekilde üst düzey hedef olarak işaretlemek yerine yalnızca ilgili gezinme grafiğinin başlangıç hedefini üst düzey hedef olarak kabul eder. Tek bir hedefin kimliğini iletme davranışı değişmez. Aynı işleve, AppBarConfiguration üzerindeki yeni isTopLevelDestination işleviyle kendi kodunuza da erişebilirsiniz.
  • Üst uygulama çubuğuyla çalışmak için NavigationUI içerisindeki setupWithNavController entegrasyonları, artık android:label içinde bulunan ReferenceType bağımsız değişkenlerinin R.string değerlerini, otomatik olarak oluşturulan kaynak tamsayısı çıktısı vermek yerine Dize değerlerine ayrıştıracak.
  • NavigationUI artık seçili bir MenuItem üzerinden gezinilemediğinde günlükleri sağlıyor.

Sürüm 2.6.0-rc02

24 Mayıs 2023

androidx.navigation:navigation-*:2.6.0-rc02 yayınlandı. 2.6.0-rc02 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Fragments'ta Gezinme ile ilgili olarak, popUpTo ile gezinmenin ve görünümü yeniden oluşturmadan bir parçanın arka yığından çıkarılmasının sistemin tekrar çalışmayı durdurmasına neden olduğu bir sorun düzeltildi. (Ieb8d4, b/281726455)

Sürüm 2.6.0-rc01

10 Mayıs 2023

androidx.navigation:navigation-*:2.6.0-rc01 yayınlandı. 2.6.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Parçalı Gezinme özelliğinde, onResume() yaşam döngüsü geri çağırma işlevinde popUpTo ile gezinerek bir parçayı kaldırmanın IllegalStateException'ye neden olmasına neden olan bir sorun düzeltildi. (I21884, b/279644470)

Sürüm 2.6.0-beta01

19 Nisan 2023

androidx.navigation:navigation-*:2.6.0-beta01 yayınlandı. 2.6.0-beta01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • NavBackStackEntry artık özel bir toString uygulaması sağlıyor. (Iff00b)

Hata Düzeltmeleri

  • Parçalarla Gezinme kullanılırken FragmentManager öğesinin arka yığınına bir parça ekleyen bir FragmentTransaction işlemini manuel olarak yapmaya çalıştığınızda IllegalArgumentException hatası döndürülür. Parçaları her zaman navigate() API'si aracılığıyla eklemeniz gerekir. (I6d38e)
  • Aynı çerçevede hem giriş ekleyen bir navigate hem de bunu kaldıran bir popBackStack olduğunda, arka yığında elde edilen en üst giriş artık tutarlı bir şekilde RESUMED Lifecycle.State öğesine geri döner. (Id8067, b/276495952)

Sürüm 2.6.0-alpha09

5 Nisan 2023

androidx.navigation:navigation-*:2.6.0-alpha09 yayınlandı. Sürüm 2.6.0-alpha09 bu kayıtları içerir.

Hata Düzeltmeleri

  • Bir NavDestination, null yapılamayan NavArgument değeri içeriyorsa bu hedef yolunun, null yapılamayan NavArgument ile aynı ada sahip bağımsız değişkenler için yer tutucular içermesine neden olacak şekilde geçersiz rotaya yönelik kontroller düzeltildi. (Ic62bf, b/274697949)
  • Gezinme işleminde Action/MimeType öğesinin eşleştiği NavDestination tarafından gerekli kılınan boş olmayan bir NavArgument eksikse Action/MimeType'e dayalı derin bağlantı gezinmeleri artık başarısız olacak. (Ibfa17, b/271777424)
  • NavController, önceki grafikle aynı rota ve hedeflere sahip bir grafik ayarladığında, artık mevcut grafik düğümlerini ve arka yığın hedeflerini düzgün şekilde yeni örneklerle değiştirir. Bu düzeltme, Gezinme Yazma'da durum kaydedilmeden onLaunchSingleTop kullanılırken oluşan kilitlenmeyi düzeltir. Bu değişiklik, kök grafik derlemeleri ve yanlış arka yığınla ilişkili hedeflere gidildiğinde oluşan hatayı da düzeltir. (I5bc58, b/275258161, b/275407804)

Sürüm 2.6.0-alpha08

22 Mart 2023

androidx.navigation:navigation-*:2.6.0-alpha08 yayınlandı. 2.6.0-alpha08 sürümü bu kayıtları içerir.

Yeni Özellikler

  • NavHostFragment artık yalnızca onCreate() sonrasına değil, NavHostFragment öğesi FragmentManager öğesine eklenir eklenmez hemen sonra NavController öğesini almanıza izin veriyor. (Ic6382, b/220186282)

Hata Düzeltmeleri

  • Null yapılamayan bir bağımsız değişken içeren iç içe yerleştirilmiş bir grafik açılırken ortaya çıkan NullPointerException düzeltildi. (6b3581, b/249988437)
  • popUpTo ile navigasyon yaptıktan sonra sistemi tekrar kullanırken NavController durumu doğru girişe gelecek. (I3a8ec, b/270447657)
  • FragmentNavigator, arka yığın sistem geri veya popBackStack() aracılığıyla çalıştırıldığında ve işlemin parça için efekt kullanıp kullanmadığıyla ilgili girişleri düzgün şekilde pop-up pencerede gösterir. (I81bdf)
  • Navigasyon kullanmadan FragmentNavigator FragmentManager öğesine parça eklemek artık kilitlenmeye neden olmayacak. (b17204, b/274167493)

Bağımlılık Güncellemeleri

Sürüm 2.6.0-alpha07

8 Mart 2023

androidx.navigation:navigation-*:2.6.0-alpha07 yayınlandı. 2.6.0-alpha07 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Rota alan getBackStackEntry, popBackStack, clearBackStack API varyantları artık null bağımsız değişkenlerle ve null özellikli sorgu parametreleriyle rota kalıpları alıyor (I22294, b/269302500)
  • NavController öğesinden clearBackStack() çağrısının, temizlenen arka yığınla ilişkilendirilen parça yöneticisindeki kayıtlı durumu temizlememesine neden olan sorun düzeltildi. (Ic1cce, b/271190202)
  • 2.6.0-alpha06 sürümünde sekmeler arasında sistem kullanılırken BottomNavigationView içinde yanlış MenuItem değerinin vurgulanmasına neden olan bir regresyon düzeltildi. (I634f6, b/270447657)
  • 2.6.0-alpha06 sürümlerindeki regresyon, Animation kullanıldığında NavBackStackEntry öğelerinin DEVAM EDİLDİ durumuna taşınmamasına neden olan düzeltildi. (Ib3589, b/269646882)

Sürüm 2.6.0-alpha06

22 Şubat 2023

androidx.navigation:navigation-*:2.6.0-alpha06 yayınlandı. 2.6.0-alpha06 sürümü bu kayıtları içerir.

Yeni özellikler

  • Bir composable NavHost ile önizlenirken artık NavGraph'in startDestination değeri varsayılan olarak gösterilecektir. (I2b89f)

API Değişiklikleri

  • Tüm NavController navigate aşırı yüklemeleri, ana iş parçacığında çağrıldıklarından emin olmak için artık @MainThread ile notlandırılıyor. (I2c0b0, b/263427111)

Hata Düzeltmeleri

  • Dinamik Parçalı Gezinme kullanılırken gezinmeye başlanırken oluşan kilitlenme giderildi. (I3ee29, b/268360479)
  • Sistem geri düğmesiyle başka bir parçaya gidildiğinde alt çubuğun doğru seçili öğeye güncellenmemesi hatası düzeltildi (If559f, b/269044426)

Bilinen Sorunlar

  • Parçalarla Gezinme kullanılırken Animation API'leri kullanılırken NavBackStackEntry Yaşam Döngüsü RESUMED değerine ulaşamıyor. (b/269646882)
  • Parçalarla Gezinme kullanırken ve BottomNavigation ile gezinirken birden fazla giriş içeren bir arka yığını geri yüklemeyi denerseniz BottomMenuItem doğru şekilde güncellenmez. (b/270447657)
  • Parçalarla Gezinme kullanılırken, durumu geri yükledikten sonra NavBackStackEntry Lifecycle parçasının parçası DESTROYED olduğunda DESTROYED almıyor . (b/270610768)

Sürüm 2.6.0-alpha05

8 Şubat 2023

androidx.navigation:navigation-*:2.6.0-alpha05 yayınlandı. 2.6.0-alpha05 sürümü bu kayıtları içerir.

Yeni Özellikler

  • NavController.popBackStack(route), NavController.getBackStackEntry(route), NavController.clearBackStack(route) artık kısmen veya tamamen doldurulmuş bağımsız değişkenlere sahip rotaları destekliyor. Bağımsız değişkenlerin, girişin bağımsız değişkenleriyle tam bir eşleşme olması gerektiğini unutmayın. (Iebd28, Ic678c, I3b37b, b/257514373)
  • FragmentNavigator, NavBackStackEntries ürününe gidip açılırken geçiş API'lerini artık kullanıyor. Yani, NavBackStackEntry Lifecycle artık son Lifecycle.State öğesini taşımadan önce giren ve çıkan parça özel efektlerinin tamamlanmasını bekleyeceği anlamına gelir. (I3cb19, b/238686802)
  • DialogFragmentNavigator, NavBackStackEntries ürününe gidip açılırken geçiş API'lerini artık kullanıyor. Bu, NavBackStackEntry Lifecycle öğesinin DESTROYED paketine geçmeden önce DialogFragment Lifecycle öğesinin DESTROYED öğesine geçmesini bekleyeceği anlamına gelir. (I53ee5, b/261213893)

API Değişiklikleri

  • NavigatorState, artık Navigator öğelerinin NavBackStackEntries öğelerini ara Lifecycle.State öğelerine taşımasına izin vermek için prepareForTransition API'si sağlıyor. (I42c21, b/238686802)
  • NavGraphNavigator veya ComposeNavigator ile ilişkili arka yığına artık bir backstack mülkü aracılığıyla erişebilirsiniz. ComposeNavigator artık bir gezinme veya popBackStack işlemini yürüten bir NavBackStackEntry'yi tamamlandı olarak işaretlemek için onTransitionComplete() geri çağırmasını da gösteriyor. (I02062, I718db, b/257519195)

Hata Düzeltmeleri

  • push/popWithTransition API'leri kullanılırken gezgin durumu artık işlemsiz olacak ve giriş zaten işleniyor. (Iadbfa, b/261213893)
  • launchSingleTop, iç içe yerleştirilmiş bir NavGraph ile kullanıldığında orijinal hedeften startDestination hedefine kadar olan tüm hedefler yalnızca arka yığının en üstüne düzgün bir şekilde eklenir. (Id4bea, b/253256629)
  • Navigasyon artık aynı hedefe gidildiğinde launchSingleTop işareti "true" (doğru) değerine ayarlıyken DialogFragment örneğini düzgün şekilde değiştirecek. (I45b5a, b/149572817)
  • Gezinme SafeArgs, artık tam olarak 19 karakter uzunluğunda bağımsız değişkenler kullanıldığında derleme hatasına neden olmayacak. (Id60bc, b/257110095)

Sürüm 2.6.0-alpha04

9 Kasım 2022

androidx.navigation:navigation-*:2.6.0-alpha04 yayınlandı. 2.6.0-alpha04 sürümü bu kayıtları içerir.

Yeni Özellikler

  • NavType özel alt sınıfları artık serializeAsValue öğesini geçersiz kılarak bir değeri Dize haline getirebilir. Böylece, hem serileştirme hem de seri durumdan kaldırma (parseValue aracılığıyla) işlemi tamamen NavType sınıfına dahil edilir. StringType, belirtilen String üzerinde Uri.encode çağrısı yapmak için artık bu yöntemi geçersiz kılar. (Ie5213, b/247637434)
  • NavigationUI artık seçili bir MenuItem üzerinden gezinilemediğinde günlükleri sağlıyor. (I2af5a, b/247730357)

Hata Düzeltmeleri

  • Gezinme derin bağlantıları artık grafik başlatma yerine geç olarak ayrıştırılıyor. Bu sayede uygulama başlarken daha iyi performans elde edilebilir. (Iab0ab)
  • Boş varsayılan bağımsız değişkenlere sahip bir hedefe derin bağlantı oluşturduktan sonra yukarı gitmenin neden olduğu kilitlenme düzeltildi. (I51c24, b/243183636)

Bağımlılık Güncellemesi

  • Navigasyon'un Dinamik Özellik Modülleri desteği artık ayrıntılı Play Özellik Dağıtımı Kitaplığı'na bağlıdır. (Ib4ddc)
  • Navigasyon Güvenli Aramaları artık Android Gradle Eklentisi'nin 7.3.0 sürümüne bağlıdır. Yani artık yalnızca 7.3.0 ve üzeri sürümlerle uyumludur. (I47e49)

Sürüm 2.6.0-alpha03

24 Ekim 2022

androidx.navigation:navigation-*:2.6.0-alpha03 yayınlandı. 2.6.0-alpha03 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Gezinme 2.5.3'nden: NavHost, Crossfade için oluşturabileceğiniz bir hedef olmadığında artık NoSuchElementException öğesine neden olmayacak. Şimdi sadece beste atlanacak. (Ieb46e, b/253299416)
  • Gezinme 2.5.3 bölümünde: Bir hedef arka yığından çıkarıldığında kayıtlı Oluşturma durumunun (ör. rememberSaveable kullanımlarının) unutulmaması ve kaldırılmaması sorunu düzeltildi. (I64949)

Bağımlılık Güncellemeleri

Sürüm 2.6.0-alpha02

5 Ekim 2022

androidx.navigation:navigation-*:2.6.0-alpha02 yayınlandı. 2.6.0-alpha02 sürümü bu kayıtları içerir.

Davranış Değişiklikleri

  • NavigationUI, bir gezinme grafiğinin kimliğini AppBarConfiguration öğesine aktarırken (örneğin, Menu aracılığıyla) grafikteki her hedefi yanlış bir şekilde üst düzey hedef olarak işaretlemek yerine yalnızca ilgili gezinme grafiğinin başlangıç hedefini üst düzey hedef olarak kabul eder. Tek bir hedefin kimliğini iletme davranışı değişmez. Aynı işleve, AppBarConfiguration üzerindeki yeni isTopLevelDestination işleviyle kendi kodunuza da erişebilirsiniz. (Ie936e, b/238496771)

Hata Düzeltmeleri

  • navigation:navigation-fragment bileşeni artık Parça 1.5.2 sürümüne bağlıdır. (I00ba4)
  • İletişim kutusu gibi bir FloatingWindow hedefine gidildiğinde seçilen menü öğesi artık güncellenmeyecek. (I4cde8, b/240308330)

Sürüm 2.6.0-alpha01

7 Eylül 2022

androidx.navigation:navigation-*:2.6.0-alpha01 yayınlandı. 2.6.0-alpha01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Üst uygulama çubuğuyla çalışmak için NavigationUI içerisindeki setupWithNavController entegrasyonları, artık android:label içinde bulunan ReferenceType bağımsız değişkenlerinin R.string değerlerini, otomatik olarak oluşturulan kaynak tamsayısı çıktısı vermek yerine Dize değerlerine ayrıştıracak. (I5f803, b/167959935)
  • NavDeepLink artık diziler için varsayılan değerleri desteklemektedir. Böylece, bağımsız değişkenin dizi türüyle eşlenecek tekrarlanan sorgu parametreleri desteklenir. NavType artık ayrıştırılan iki değeri birleştirmek için geçersiz kılınabilen bir varsayılan yöntem de içeriyor. (Id68c3, b/209977108)
  • app:data ve gezinme XML dosyasının etkinlik öğesindeki app:dataPattern özelliklerindeki yer tutucu olarak tam ${applicationId} dizesini kullanırken, yer tutucu, şişirme sonrasında otomatik olarak bağlamın packageName ile doldurulur. (Iaabde, b/234223561)
  • navDeepLink Kotlin DSL kullanarak boş bir NavDeepLink oluşturma girişiminde bulunulması durumunda artık derin bağlantının geçerli olması için URI, işlem ve/veya mime türü gerektiğini belirten bir hata analizi uyarısı gösterilecektir. (I08d2f, b/154038883)

API Değişiklikleri

  • android:label="{arg}" biçimindeki bağımsız değişkenlere sahip dinamik etiketleri Dize olarak ayrıştırmak için yeni NavDestination uzantı işlevi eklendi. R.string değerlerini Dize değerlerine çözümleyerek ReferenceType bağımsız değişkenlerini destekler. (I07d89, b/236269380)

Davranış Değişiklikleri

  • NavBackStackEntry'nin arguments ve OnDestinationChangedListener öğesine aktarılan arguments, artık hedefe gittiğinizde oluşturulan sabit bağımsız değişkenlerin yalnızca bir kopyasıdır. Bu, söz konusu Paketlerde yapılan değişikliklerin arguments veya diğer OnDestinationChangedListener örneklerine sonraki erişimlerde yansıtılmayacağı anlamına gelir. (I676f5)

Hata Düzeltmeleri

  • Navigasyon 2.5.2'dan: Dinamik Gezinme artık diğer modüllerdeki Etkinlik hedeflerini bu modüllere gitmeden önce düzgün bir şekilde yüklemeyi deniyor. (Ia2c16, b/240292838)
  • Gezinme 2.5.2 bölümünde: Navigasyon, aynı hedefe gidilirken ve launchSingleTop işareti doğru olarak ayarlandığında artık Fragment örneğinin yerini alacak. (I5a2f1, b/237374580)
  • Gezinme 2.5.2 bölümünde: Yeni açılan başlangıç hedefiyle üst öğe paylaşan çift iç içe yerleştirilmiş grafiğe gitmenin neden olduğu IllegalStateException sorunu düzeltildi. (I9f7cb, b/243778589)

Sürüm 2.5

Sürüm 2.5.3

24 Ekim 2022

androidx.navigation:navigation-*:2.5.3 yayınlandı. Sürüm 2.5.3 bu kayıtları içerir.

Hata Düzeltmeleri

  • Crossfade için oluşturulabilecek bir hedef olmadığında NavHost artık bir NoSuchElementException hedefine neden olmayacak. Şimdi sadece beste atlanacak. (Ieb46e, b/253299416)
  • Bir hedef arka yığından çıkarıldığında kayıtlı Oluşturma durumunun (ör. rememberSaveable kullanımlarının) unutulmaması ve kaldırılmaması sorunu düzeltildi. (I64949)

Sürüm 2.5.2

7 Eylül 2022

androidx.navigation:navigation-*:2.5.2 yayınlandı. Sürüm 2.5.2 bu kayıtları içerir.

Hata Düzeltmeleri

  • Dinamik Gezinme artık diğer modüllere gitmeden Etkinlik hedeflerini düzgün şekilde yüklemeyi deniyor. (Ia2c16, b/240292838)
  • Gezinme özelliği artık aynı hedefe gidilirken ve launchSingleTop işaretini doğru olarak ayarlarken Fragment örneğinin yerini alacaktır. (I5a2f1, b/237374580)
  • Yeni açılan başlangıç hedefiyle bir üst öğeyi paylaşan, iç içe yerleştirilmiş çift grafiğe gidilmesinden kaynaklanan IllegalStateException düzeltildi. (I9f7cb, b/243778589)

Bağımlılık Güncellemesi

Sürüm 2.5.1

27 Temmuz 2022

androidx.navigation:navigation-*:2.5.1 yayınlandı. Sürüm 2.5.1 bu kayıtları içerir.

Hata Düzeltmeleri

  • Navigation Safe Args, Bundle içine kaydedilen özel bağımsız değişken türleri kullanılırken, oluşturulan sınıflarda artık desteği sonlandırma uyarılarına neden olmayacak. (Id86ed, b/237725966)

Bağımlılık Güncellemeleri

Sürüm 2.5.0

29 Haziran 2022

androidx.navigation:navigation-*:2.5.0 yayınlandı. Sürüm 2.5.0 bu kayıtları içerir.

2.4.0'dan sonraki önemli değişiklikler

  • CreationExtras Integration (Oluşturma Ekstraları Entegrasyonu) - Navigation, artık Lifecycle 2.5.0'ın CreationExtras aracılığıyla durum bilgisiz ViewModelProvider.Factory sağlayabilir.

Navigasyon Güvenli Aramaları

  • Navigation Safe Args, Android Gradle Plugin bağımlılığını 7.0.4 tabanlı olacak şekilde yükseltti ve 7.0 tarihinden önce AGP sürümleri için uyumluluğu azalttı.
  • appId ad alanı yerine build.gradle özelliği için destek eklendi.

Diğer Değişiklikler

  • visibleEntries API artık deneysel değildir ve NavController göre şu anda hedefi görünür olan tüm girişleri almak için bir işlev sağlar.

Sürüm 2.5.0-rc02

15 Haziran 2022

androidx.navigation:navigation-*:2.5.0-rc02 yayınlandı. 2.5.0-rc02 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Gezinme Oluşturma NavHost kullanılırken alt hedefler arasında hızlı geçişin neden olduğu kilitlenme düzeltildi. (I3979a, b/234054916)
  • applicationId içermeyen bir applicationIdSuffix ve ad alanı kullanıldığında veya applicationId ile ad alanı farklı olduğunda Navigation SafeArgs artık kilitlenmeyecek. (I754b1, b/233119646)
  • NavArgument artık bağımsız değişkenin dahili değerlerini gösteren özel bir toString() işlevine sahip. (I900a8)

Sürüm 2.5.0-rc01

11 Mayıs 2022

androidx.navigation:navigation-*:2.5.0-rc01 yayınlandı. 2.5.0-rc01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • <deeplink> öğelerinin navigation.xml dosyanızdaki <activity> öğelerinin içine yerleştirilmesine karşı uyarıda bulunan yeni bir hata analizi kuralı eklendi.(Ic15a5, b/178403185)

Hata Düzeltmeleri

  • NavHost ve DialogHost alanlarındaki composable kapsamlar artık beklenen sırada imha ediliyor. Diğer bir ifadeyle, iç composabled'lar dış composable'lardan önce atılıyor. (I157e6)
  • Navigation SafeArgs artık önbellekte yeniden konumlandırılabilmesi için ArgumentsGenerationTask içinde PathSensitivity.RELATIVE kullanıyor. Bu, önbellek girişinin artık bir CI derlemesinden yerel derlemeye yeniden kullanılabileceği anlamına gelir. (I5f67c, b/173420454)
  • UnrememberedGetBackStackEntryDetector hata analizi kuralı, getBackStackEntry() çağrısını çevreleyen remember çağrısının bir NavBackStackEntry nesnesini anahtar olarak geçirmesini sağlayacak şekilde güncellendi.(Ib7081, b/227382831)

Sürüm 2.5.0-beta01

20 Nisan 2022

androidx.navigation:navigation-*:2.5.0-beta01 yayınlandı. 2.5.0-beta01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • DialogNavigator, bir dismiss() çağrısı yürütürken artık popWithTransition kullanıyor. Bu değişiklik, dialog hedefinde ViewModel kullanıldığında sistemi geri kullanarak veya iletişim kutusu dışına dokunarak iletişim kutusunu kapatırken IllegalStateException sorununa yol açan yarış durumunu düzeltir. (Id7376, b/226552301)

Bağımlılık Güncellemeleri

  • Navigasyon artık Yaşam Döngüsü 2.5.0-beta01'ne dayalı. Birden fazla arka grup kullanılırken, NavHost birincil olmayan bir alt gezinme sekmesinde başka bir NavHost içine yerleştirilirken bir IllegalStateException düzeltilir.

Sürüm 2.5.0-alpha04

6 Nisan 2022

androidx.navigation:navigation-*:2.5.0-alpha04 yayınlandı. Sürüm 2.5.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

Hata Düzeltmeleri

  • NavHost, hangi girişlerin oluşturulacağını belirlemek için artık NavController içindeki visibleEntries öğesini kullanıyor. Bu, iç içe yerleştirilmiş NavHost kullanılırken iç NavHost artık düzgün bir şekilde canlandırılacağı anlamına gelir. (I4ba2b, b/225394514)
  • NavController tarafından sağlanan visibleEntries StateFlow artık geçerli Yaşam Döngüsü durumu yerine girişin maksimum Yaşam Döngüsü durumunu temel alıyor. Bu, navController öğesinin ana makine yaşam döngüsü BAŞLANGIÇ değerinin altına düşse bile görünür durumdaki bütünlerin listesinin aynı kalacağı anlamına gelir. (I9e2a8, b/225394514)
  • SavedStateViewFactory artık SavedStateRegistryOwner ile başlatıldığında bile CreationExtras kullanımını destekliyor. Ekstralar sağlanırsa başlatılan bağımsız değişkenler yoksayılır. (I6c43b, b/224844583)
  • NavDeepLink artık Uris'i değer içermeyen tek bir sorgu parametresiyle ayrıştırabilir. (I0efe8, b/148905489)
  • Boş dizeler artık derin bağlantılarda geçerli bağımsız değişkenler olarak kabul ediliyor. (I70a0d, b/217399862)
  • Ad alanları kullanılırken Navigation Safe Args artık kilitlenmeyecek ve AndroidManifest.xml mevcut değildir. (I17ccf, b/227229815)

Sürüm 2.5.0-alpha03

23 Şubat 2022

androidx.navigation:navigation-*:2.5.0-alpha03 yayınlandı. 2.5.0-alpha03 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Artık ViewModel oluşturmak için CreationExtras ile by navGraphViewModels adlı iş ortağına geçebilirsiniz. (I29217, b/217618359)

Hata Düzeltmeleri

  • NavDeepLinks, artık rotalara/derin bağlantı URI'larına yerleştirilmiş, kodlanmış yeni satır karakterlerini düzgün bir şekilde destekliyor. (I513d1, b/217815060)
  • CreationExtras artık ViewModel'leri oluşturmak için NavBackStackEntries ile birlikte kullanıldığında düzgün çalışacak. (I69161, b/217617710)
  • Navigasyon Güvenli Aramaları artık AndroidManifest'teki paket yerine build.gradle içinde tanımlanan ad alanının kullanılmasını destekliyor. (I659ef, b/217414933)

Sürüm 2.5.0-alpha02

9 Şubat 2022

androidx.navigation:navigation-*:2.5.0-alpha02 yayınlandı. 2.5.0-alpha02 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Gezinme 2.4.1 bölümünde: NavHostFragment, iç içe yerleştirilmiş grafiklerle görüntüleme bağlamayı kullanırken OnBackPressedDispatcher özelliğini artık doğru şekilde ayarlayacak. (Ifbb51, b/214577959)
  • Gezinme 2.4.1 bölümünde: İç içe yerleştirilmiş birden fazla NavGraph üzerinden derin bağlantı kullanılıyorsa arka yığın artık düzgün şekilde ara başlangıç hedeflerini içerecektir. (I504c0, b/214383060)

Sürüm 2.5.0-alpha01

26 Ocak 2022

androidx.navigation:navigation-*:2.5.0-alpha01 yayınlandı. 2.5.0-alpha01 sürümü bu kayıtları içerir.

Yeni Özellikler

Hata Düzeltmeleri

  • Bir Fragment'ın onCreate() öğesinden by navGraphViewModels() aracılığıyla oluşturulan bir ViewModel öğesine erişimin IllegalStateException ile başarısız olması sorunu düzeltildi. (I8a14d)
  • NavDeepLink'ler artık gereksiz şekilde bağımsız değişkenlerin kodunu iki kez çözmeyecektir. Bu da doğru bağımsız değişkenlerin son hedefinize aktarılacağı anlamına gelir. (I31b0a, b/210711399)

Güvenli Aramalar

  • Güvenli Aramalar artık Android Gradle Eklentisi'nin 7.0.4 sürümüne bağlıdır. Bu, Navigation Safe Args hizmetinin artık Android Studio'nun 7.0'dan önceki sürümleriyle uyumlu olmayacağı, ancak artık Android Gradle Eklentisi 7.1.0 ve sonraki sürümlerle de uyumlu olacağı anlamına geliyor. (I41c88, b/213086135, b/207670704)

Sürüm 2.4.2

Sürüm 2.4.2

6 Nisan 2022

androidx.navigation:navigation-*:2.4.2 yayınlandı. 2.4.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

Sürüm 2.4.1

Sürüm 2.4.1

9 Şubat 2022

androidx.navigation:navigation-*:2.4.1 yayınlandı. 2.4.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • İç içe yerleştirilmiş grafiklerle görünüm bağlama kullanılırken NavHostFragment artık OnBackPressedDispatcher öğesini düzgün şekilde ayarlayacak. (Ifbb51, b/214577959)
  • İç içe yerleştirilmiş birden fazla NavGraph üzerinden derin bağlantı oluşturulduğunda arka yığın, artık düzgün şekilde ara başlangıç hedeflerini içerecektir. (I504c0, b/214383060)
  • Gezinme 2.5.0-alpha01 özelliğinden geri alındı: by navGraphViewModels() aracılığıyla oluşturulan bir ViewModel'e (Fragment'ın onCreate()) erişiminden IllegalStateException ile başarısız olunması sorunu düzeltildi. (I8a14d)
  • Gezinme 2.5.0-alpha01'ten geri alındı: NavDeepLink'ler artık bağımsız değişkenlerin kodunu iki kez çözmez. Böylece, kodu doğru şekilde çözülmüş bağımsız değişkenler artık son hedefinize aktarılır. (I31b0a, b/210711399)
  • Gezinme 2.5.0-alpha01 üzerinden desteklendi: Safe Args artık Android Gradle Eklentisi'nin 7.0.4 sürümüne bağlıdır. Bu, Navigasyon Güvenli Arama'ların artık 7.0'dan önceki Android Studio sürümleriyle uyumlu olmayacağı, ancak artık Android Gradle Eklentisi 7.1.0 ve sonraki sürümlerle uyumlu olacağı anlamına gelir. (I41c88, b/213086135, b/207670704)

Sürüm 2.4.0

Sürüm 2.4.0

26 Ocak 2022

androidx.navigation:navigation-*:2.4.0 yayınlandı. 2.4.0 sürümü bu kayıtları içerir.

2.3.0'dan sonraki önemli değişiklikler

  • Tüm Navigasyon eserleri Kotlin ile yeniden yazıldı. Bu, genel öğeleri (NavType alt sınıfları gibi) kullanan sınıfların boş değer atanmasını artırdı. Daha önce -ktx yapılarının bir parçası olan tüm Kotlin uzantı işlevleri, ilgili ana yapılarına taşındı. -ktx yapıları yayınlanmaya devam eder ancak tamamen boş olur.
  • navigation-fragment yapısı artık yeni AbstractListDetailFragment aracılığıyla önceden oluşturulmuş iki bölmeli düzen uygulamasını içermektedir. Bu parça, örnek uygulamamızda gösterildiği gibi, liste bölmesini (alt sınıfınızın sağladığı) ve uygulaması olarak NavHostFragment kullanan bir ayrıntı bölmesini yönetmek için bir SlidingPaneLayout kullanır.
  • NavController üzerindeki currentBackStackEntryAsFlow() yöntemi, mevcut NavBackStackEntry değiştiğinde tetiklenen bir Flow sağlar. Bu akış, OnDestinationChangedListener manuel olarak yönetmeye alternatif olarak kullanılabilir.
  • NavController artık deneysel visibleEntries özelliği aracılığıyla tüm görünür NavBackStackEntry örneklerinin listesini StateFlow olarak alma yeteneği sunuyor.
  • Artık NavType sınıfını özel NavType'lar oluşturacak şekilde genişletmek mümkündür. Özel türler yalnızca gezinme grafiğinizi programatik olarak oluştururken (ör. Gezinme Grafiği Kotlin DSL) desteklenir.
  • Navigasyon artık, özel NavigationUI'yi uygulamaya yardımcı olmak için kullanılabilecek findStartDestination() ve getHierarchy() API'leri sunuyor. findStartDestination(), NavGraph üzerindeki bir uzantı işlevidir ve startDestination öğesinin kendisi iç içe yerleştirilmiş bir NavGraph olsa bile grafiğe gittiğinizde görüntülenen gerçek başlangıç hedefini bulur. getHierarchy(), NavDestination üzerinde bulunan ve belirli bir hedefin başka bir hedefin hiyerarşisinde olup olmadığını doğrulamak için kullanılabilecek bir işlevdir.

    val matchingRoute: Boolean = destination.hierarchy.any { it.route == routeToFind }
    
  • BottomNavigationView alan NavigationUI yöntemleri, bunun yerine 1.4.0 Malzemesi'nde kullanıma sunulan üst sınıfı (NavigationBarView) alacak şekilde güncellendi. Bu, söz konusu yöntemlerin NavigationRailView ile kullanılmasına olanak tanır.

  • XML aracılığıyla bir <action> öğesi şişirilirken animasyon özellikleri, app:enterAnim="?attr/transitionEnter" söz dizimi kullanılarak temanızdan alınan özellikleri kullanabilir.

  • Safe Args artık her NavArgs sınıfı için bir fromSavedStateHandle() yöntemi oluşturuyor. (#122, b/136967621)

    class HomeViewModel(savedStateHandle: SavedStateHandle) : ViewModel() {
      // Create a HomeDestinationArgs class with type safe accessors for each argument
      // defined on your destination
      private val args = HomeDestinationArgs.fromSavedStateHandle(savedStateHandle)
    }
    

Navigasyon Rotaları ve Kotlin DSL

Navigasyon'un önceki sürümlerinde her hedef, sabit bir tam sayı kimliğine sahipti ve bu kimlik sayesinde hedefi eşdüzey hedeflerden benzersiz bir şekilde tanımlayarak bu hedefe doğrudan veya bir işlem aracılığıyla navigate() gerçekleştirebiliyordunuz. Bu yöntem, özellikle gezinme grafiğinizi XML'de tanımladığınızda ve otomatik olarak oluşturulmuş R.id sabitlerini veya derleme zamanında kod oluşturmak için bu sabit değerleri kullanan Güvenli Arg'ları kullanabildiğiniz durumlarda geçerli ve kullanışlı olmaya devam etse de, bu benzersiz tam sayı sistemi, Gezinme Kotlin DSL aracılığıyla çalışma zamanında programlı olarak oluşturulan tamamen dinamik grafikleri desteklemek için gerekli olan anlamsal anlamı ve ifade gücünü yakalayamadı.

Bu sürümde, navigasyon grafiğinde bir varış noktasının rotasına göre benzersiz şekilde tanımlanmasını sağlayan yeni bir seçenek sunuluyor. Rota, hedefe giden benzersiz yolu tanımlayan bir String'dir. Hedef kimliği kullanan tüm Kotlin DSL yöntemleri kullanımdan kaldırıldı ve bunların yerini rotayı alan eşdeğer bir API aldı.

Her rota, söz konusu hedefi tanımlayan Uri öğesinin "yol" bölümü olarak değerlendirilmelidir (ör. home, profile/{userId}, profile/{userId}/friends vb. Bir hedefin kimliği belirli bir içerik parçasıyla ilişkilendirildiğinde, bu dinamik bağımsız değişkenler dolaylı derin bağlantılarla aynı kurallara uygun şekilde rotanın bir parçası olmalıdır.

Daha önce yalnızca kimlik alan tüm NavController API'lerinde artık String rotasını kullanan bir aşırı yük bulunuyor. Buna navigate(), popBackStack(), popUpTo() ve getBackStackEntry() dahildir.

Bu durum, API'de bazı sorunlara yol açmıştır:

  • Kotlin DSL'sindeki popUpTo Kotlin özelliği, kullanımdan kaldırılmış ve yerini popUpToId almıştır.
  • getStartDestination() API, kullanımdan kaldırılmış ve yerini getStartDestinationId() almıştır.

Kimliğe göre gezinmenin aksine, rotaya göre gezinmede örtülü derin bağlantılarla aynı kurallar uygulanır. İç içe yerleştirilmiş grafiklerdeki herhangi bir hedefe doğrudan gidebileceğiniz bu rotalar, her bir hedefe harici olarak görünür bir derin bağlantı eklemeden bu rotaların çok modüllü projelerde kullanılabilir olmasını sağlar.

Gezinme Oluştur

navigation-compose yapısı, Gezinme Bileşeni ile Jetpack Compose arasında entegrasyon sağlar. Uygulamanızda hedef olarak @Composable işlevlerini kullanır.

Bu sürüm aşağıdakileri sağlar:

  • composable ve dialog hedeflerini kullanarak bir Kotlin DSL kullanarak gezinme grafiğinizi oluşturmanıza olanak tanıyan bir NavHost kompozisyonunun yanı sıra Accompanist Navigation Material'dakiler gibi isteğe bağlı gezginler için destek.
  • Hedefler arasında geçiş için zorunlu destek. Eşlikli Gezinme Animasyonu, deneysel Compose API'leriyle giriş ve çıkış geçişlerini kontrol etmek için kullanılabilir.
  • Bir Lifecycle öğesinin her composable hedef ile kapsama alınması. Her hedef, yalnızca herhangi bir giriş geçişi bittiğinde RESUMED durumuna ulaşır ve çıkış yapılan geçişler başladığında hemen STARTED düzeyine düşer. Böylece, yalnızca Lifecycle RESUMED olduğunda bir navigate çağrısı tetikleyerek tüm IllegalStateException ve çoklu dokunma sorunlarından kaçınabilirsiniz.
  • ViewModel'in kapsamı (Yaşam Döngüsü ViewModel Compose'un viewModel() API'si2.4.0 veya hedef düzeyde Hilt Navigation Compose 1.0.0'un hiltViewModel() API'si aracılığıyla yapılandırma değişikliklerinden sonra dayanacak ve arka yığında yer alacak (composable içeriğiniz başka bir şekilde imha edildiğinde) ve ViewModel'in onCleared() öğesinde bu durumla ilişkili durumun kalıcı olarak atılmasını ve temizlenmesini belirten bir sinyal sağlar. NavBackStackEntry
  • rememberSaveable durumunun hedef düzeyinde kapsama alınması, bir hedefe döndüğünüzde tüm composable durumlarının otomatik olarak kaydedilip otomatik olarak geri yüklenmesini sağlar.
  • İşlem tamamlandıktan ve yeniden oluşturulduktan sonra NavController alanının ve hedefinin durumunun kaydedilmesi ve geri yüklenmesi için tam destek.
  • Sistem geri düğmesiyle otomatik entegrasyon.
  • Bağımsız değişkenleri iletme, hedeflere derin bağlantılar ekleme ve bir sonucu önceki hedeflere döndürme desteği.

  • Kaldırma durumuna ve NavController öğesini NavHost dışındaki composable'lara (ör. alt gezinme çubuğu) bağlamaya izin vermek için rememberNavController() ve currentBackStackEntryAsState() içinde belirli yardımcılar oluşturun.

val navController = rememberNavController()
Scaffold { innerPadding ->
    NavHost(navController, "home", Modifier.padding(innerPadding)) {
        composable("home") {
            // This content fills the area provided to the NavHost
            HomeScreen()
        }
        dialog("detail_dialog") {
            // This content will be automatically added to a Dialog() composable
            // and appear above the HomeScreen or other composable destinations
            DetailDialogContent()
        }
    }
}

Daha fazla bilgi için Gezinme kılavuzuna göz atın.

Birden çok arka grup

NavController, hedef grubunun arka yığınını yönetmekten, navigate() işlemi gerçekleştirdiğinizde arka yığına hedefler eklemekten ve popBackStack() çağrısı yaptığınızda veya sistem geri düğmesini tetiklediğinizde kaldırmaktan sorumludur. Mevcut NavOptions sınıfı ve gezinme grafiği XML'sindeki <action> öğelerine entegrasyon, arka yığını kaydetmeyi ve geri yüklemeyi destekleyecek şekilde genişletilmiştir.

Bu değişiklik kapsamında onNavDestinationSelected(), BottomNavigationView.setupWithNavController() ve NavigationView.setupWithNavController() kapsamındaki NavigationUI yöntemleri artık pop-up hedeflerin durumunu otomatik olarak kaydedip geri yükleyerek herhangi bir kod değişikliği olmadan birden fazla arka yığın desteğini etkinleştirir. Gezinme Parçalarla Gezinme özelliğini kullanırken birden fazla arka plan yığınıyla entegrasyon için önerilen yöntem budur.

Durumu kaydetme ve geri yüklemeyle ilgili temel API'ler, çeşitli yüzeylerle gösterilir:

  • Navigasyon XML'sinde <action> öğesi, app:popUpTo aracılığıyla açılan hedeflerin durumunu kaydetmek ve app:destination olarak iletilen hedefle ilişkilendirilen durumu geri yüklemek için artık app:popUpToSaveState ve app:restoreState boole özelliklerini kullanabilir:

    <action
      android:id=”@+id/swap_stack”
      app:destination=”@id/second_stack”
      app:restoreState=”true”
      app:popUpTo=”@id/first_stack_start_destination”
      app:popUpToSaveState=”true” />
    
  • navOptions Kotlin DSL'de, popUpTo oluşturucuda restoreState boole özelliğini ve saveState boole özelliğini ekleyebilirsiniz:

    // Use the navigate() method that takes a navOptions DSL Builder
    navController.navigate(selectedBottomNavRoute) {
      launchSingleTop = true
      restoreState = true
      popUpTo(navController.graph.findStartDestination().id) {
        saveState = true
      }
    }
    
  • NavOptions.Builder aracılığıyla manuel olarak bir NavOptions nesnesi oluştururken, ek saveState parametresi alan setPopUpTo() için setRestoreState() ve yeni aşırı yüklemeyi kullanabilirsiniz.

    NavOptions navOptions = new NavOptions.Builder()
      .setLaunchSingleTop(true)
      .setRestoreState(true)
      .setPopUpTo(NavGraph.findStartDestination(navController.getGraph()).getId(),
        false, // inclusive
        true) // saveState
      .build();
    navController.navigate(selectedBottomNavId, null, navOptions);
    
  • popBackStack()'e yapılan programatik çağrılar artık ek bir saveState parametresi içerebilir.

  • popBackStack() veya popUpToSaveState ile kaydedilen durumları temizlemek için clearBackStack() yöntemini kullanabilirsiniz.

Her durumda NavController, gezinme hedefi kapsamındaki ViewModel örnekleri de dahil olmak üzere her NavBackStackEntry öğesinin durumunu kaydedip geri yükler. Navigator API'leri, her bir Navigator öğesinin kendi durumunu kaydetmeyi ve geri yüklemeyi desteklemesini sağlayacak şekilde güncellendi.

Davranış değişiklikleri

  • NavDeepLinkBuilder, artık createPendingIntent() tarafından döndürülen PendingIntent öğesine PendingIntent.FLAG_IMMUTABLE ekleyerek bu API'nin Android 12 hedeflenirken beklendiği gibi çalışmasını sağlar.
  • Gezinme artık Yaşam Döngüsü 2.3.1'ne bağlıdır ve setGraph(), popBackStack(), navigateUp() ve navigate() adlı yöntemler, NavBackStackEntry Lifecycle'u @MainThread olarak güncelleyen ve Gezinme'yi Yaşam Döngüsü 2.3.0'nde tanıtılan ana iş parçacığı yaptırımı ile uyumlu hale getiren yöntemlerdir.
  • Derin bağlantılar artık, gerekli tüm bağımsız değişkenlerin (varsayılan değere sahip olmayanlar) Uri içinde mevcut olduğunu doğruluyor.
  • NavDeepLink ayrıştırılan bağımsız değişkenler, artık pound işaretlerini yol segmentleri arasındaki ayırıcı olarak soru işaretleriyle aynı şekilde değerlendirerek bağımsız değişkenin pound işaretinin sonuna yayılmasını önler.
  • İşlem oluşturulurken, Güvenli Bağımsız Değişkenler'den oluşturulan Kotlin kodu artık varsayılan değeri olmayan bağımsız değişkenleri, parametre olarak varsayılan değerlere sahip olanlardan önce yerleştiriyor.
  • Bağımsız değişkenler oluştururken, Safe Args artık varsayılan değeri olmayan parametreleri, varsayılan değerleri olanların önüne yerleştiriyor.
  • Güvenli Aramalar artık Android Gradle Eklentisi 4.2.0'a bağlıdır. Bu durumda, artık applicationIdTextResource kullanma uyarısı almazsınız.

Bilinen sorunlar

  • Gezinme 2.5.0-alpha01 özelliğinde düzeltildi: Bir Fragment'ın onCreate() öğesinden by navGraphViewModels() ile oluşturulan bir ViewModel öğesine erişim IllegalStateException ile başarısız olur. (b/213504272)
  • Gezinme 2.5.0-alpha01 özelliğinde düzeltildi: Safe Args 2.4.0, Android Gradle Plugin 7.1.0 ve sonraki sürümleriyle uyumlu değildir. (b/213086135)
  • İç içe yerleştirilmiş birden çok gezinme grafiğine sahip derin bağlantı, tam geri yığını doğru şekilde oluşturmaz. (b/214383060)

Sürüm 2.4.0-rc01

15 Aralık 2021

androidx.navigation:navigation-*:2.4.0-rc01 yayınlandı. 2.4.0-rc01 sürümü bu kayıtları içerir.

Davranış değişiklikleri

  • NavDeepLink ayrıştırılan bağımsız değişkenler, artık diyez işaretlerini soru işaretleriyle aynı şekilde bağımsız değişkenler arasında ayırıcı olarak değerlendirecek. (I21309, b/180042703)

Hata Düzeltmeleri

  • Derin bağlantılar artık yer tutucunun adıyla aynı değerlere sahip bağımsız değişkenleri yoksaymayacak. (If8017, b/207389470)
  • NavController geri yüklendikten sonra, geçişler kullanılarak iç içe yerleştirilmiş bir hedef yerleştirilirken NavController kilitlenmeyecek. (I0f7c9, b/205021623)
  • Geçersiz bir startDestination kullanılırken hata mesajı artık varsayılan olarak başlangıç hedefinin rotası varsa varsayılan olarak ayarlanacak. (I86b9d, b/208041894)

Gezinme - Oluşturma Hata Düzeltmeleri

  • Alt gezinme menüsü öğeleri kullanılarak başlangıç hedefi ile başka bir hedef arasında hızlı geçiş yapılmasından kaynaklanan olası kilitlenme düzeltildi. (Ic8976, b/208887901)
  • Yapılandırma değişiklikleri veya işlem ölümünden sonra iletişim kutusu hedefi artık ekranın üst kısmına düzgün bir şekilde geri yükleniyor. (I4c0dc, b/207386169)
  • İletişim kutusu kapatıldığında bir iletişim kutusunun NavBackStackEntry öğesinden ViewModel alma girişiminin başarısız olmasına neden olan sorun düzeltildi. (I6b96d, b/206465487)
  • activity hedeflerini, Gezinmeyle Yazma'nın NavHost özelliği ile kullanırken sonsuz yeniden düzenlemelerle sonuçlanacak bir sorun giderildi. (I8f64c)
  • Navigation Compose'da yapılandırma değişikliği veya işlem ölümünden sonra eski etkinliğin referansının tutulduğu bir sızıntı düzeltildi. (I4efcb, b/204905432)

Güvenli Aramalar Hata Düzeltmeleri

  • SafeArgs, işlem sonlandırıldıktan sonra özel ayrıştırılabilir dizileri geri yüklemeye çalışırken artık kilitlenmez. (I618e8, b/207315994)
  • Güvenli bağımsız değişkenlerde, boole dizilerinin null değerine sahip olmasına izin vermeyen bir hata düzeltildi. (I8c396, b/174787525)

Sürüm 2.4.0-beta02

3 Kasım 2021

androidx.navigation:navigation-*:2.4.0-beta02 yayınlandı. 2.4.0-beta02 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Hem açık hem de örtülü derin bağlantıların işlenmesi, artık başka bir grafiğe giderken saveState işaretini otomatik olarak ekleyerek NavigationUI.setupWithNavController gibi kodların ve birden fazla arka yığın kullanan kodun beklendiği gibi çalışmasını sağlıyor. (Ic8807)

Davranış Değişiklikleri

  • Derin bağlantı kalıpları artık enflasyon sırasında değil NavDeepLink'te geç derleniyor. Bunun sonucunda, derin bağlantılar içeren gezinme grafiklerinin artma süresi artacaktır. (b8d257, b/184149935)

Hata Düzeltmeleri

  • NavHost doğrudan etkinliğin setContent() öğesine eklendiğinde, Lifecycle.State.STARTED öğesine taşındıktan sonra NavBackStackEntries'in Lifecycle.State.CREATED öğesine aşağı itilmesine neden olan sorun düzeltildi. (Ia5ac1, b/203536683)
  • İletişim kutusu gösterilmeden önce arka yığından bir DialogFragment hedefinin iletişim kutusunu kapatmadığı ve hatalı iletişim kutusu kullanıcı tarafından manuel olarak kapatıldığında kilitlenmeye neden olan bir yarış durumu düzeltildi. (I687e5)
  • Söz konusu gezinme grafiğine aslında navigate() eklememiş olsanız bile NavigationUI üzerindeki onNavDestinationSelected API'nin true değerini döndürmesine neden olan sorun düzeltildi. Artık hedefin hierarchy değeri ile yalnızca geçerli hedefle ilişkili MenuItem öğesini seçmek için setupWithNavController tarafından dahili olarak kullanılan mantığın aynısını kullanıyor. (I2b053)

Sürüm 2.4.0-beta01

27 Ekim 2021

androidx.navigation:navigation-*:2.4.0-beta01 yayınlandı. 2.4.0-beta01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Parçalarla Gezinme Kotlin DSL'sinin kullanılmasını daha iyi desteklemek için, kimlik kullanmaya alternatif olarak by navGraphViewModel öğesini bir rotayla birlikte kullanabilirsiniz. (I901e3, b/201446416)

API Değişiklikleri

  • visibleEntries API şu anda deneyseldir. (I93f6f)

Hata Düzeltmeleri

  • Aynı ekranlar arasında ileri ve geri gidilerek geçişler kesintiye uğradığında ViewModel'leri artık yok edilmeyecek (Id52d8, b/200817333)
  • Boş değer atanabilir NavDeepLink bağımsız değişkenleri, NavDestination öğelerine derin bağlantılar eklerken artık varsayılan değer gerektirmemektedir. (I5aad4, b/201320030)
  • Farklı Yaşam Döngülerine sahip NavBackStackEntries, artık eşit olarak kabul edilmemektedir. Bu, singleTop ile gezinme yaparken ve alt menü öğelerini yeniden seçerken NavHost'un tüm hedefleri düzgün bir şekilde yeniden oluşturacağı anlamına gelir. (I1b351, b/196997433)
  • onCreateListPaneView() tarafından döndürülen liste bölmesindeki layout_width ve layout_weight özelliklerinin yanlış işlenmesine veya yoksayılmasına neden olan AbstractListDetailFragment sorunu düzeltildi. (f5fbf3)
  • İletişim kutusu hedeflerinin görsel durumu artık DialogFragmentNavigator durumu ile doğru şekilde senkronizedir. Bu, DialogFragment için eşzamansız dismiss() API'sinin manuel olarak çağrılmasının, kapatılan iletişim kutusunun üzerindeki tüm iletişim kutusu hedeflerini artık düzgün bir şekilde temizlediği anlamına gelir. Bu, iletişim kutunuzu kapatmak için popUpTo veya popBackStack() kullandığınız durumları etkilemez. (I77ba2)
  • AbstractAppBarOnDestinationChangedListener, onDestinationChanged() için artık daha net hata mesajına sahip. (Ie742d)

Sürüm 2.4.0-alfa10

29 Eylül 2021

androidx.navigation:navigation-*:2.4.0-alpha10 yayınlandı. Sürüm 2.4.0-alpha10 bu kayıtları içerir.

Yeni Özellikler

  • NavController artık visibleEntries StateFlow (Ia964e) üzerinden görünür tüm NavBackStackEntry örneklerinin listesini alma özelliği sunuyor
  • rememberNavController(), Eşlikli Navigasyon Materyali gibi isteğe bağlı Gezinme Gereçleri'ni daha iyi desteklemek için iade edilen NavController öğesine eklenecek isteğe bağlı Navigator örnek kümesi alıyor. (I4619e)

Hata Düzeltmeleri

  • Etkinlik yeniden oluşturulduğunda Dinamik Gezinme artık çökmeyecektir. (Ifa6a3, b/197942869)
  • Yalnızca NavHost içeren composable bir hedefe geri dönüldükten sonra oluşan sistem geri düğmesiyle ilgili bir sorun düzeltildi. (3ed148, b/195668143)
  • SafeArgs artık fromBundle() ve fromSavedStateHandle() için bağımsız değişkenleri doğru parametre sırasında oluşturuyor. (I824a8, b/200059831)

Sürüm 2.4.0-alpha09

15 Eylül 2021

androidx.navigation:navigation-*:2.4.0-alpha09 yayınlandı. 2.4.0-alpha09 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Artık popBackStack() veya popUpToSaveState ile kaydedilen durumları temizlemek için clearBackStack() yöntemini kullanabilirsiniz. (I80a0f)
  • Artık iç içe yerleştirilmiş gezinme grafiğinizin oluşturucusuna bir bağımsız değişken ve/veya derin bağlantı listesi aktarabilirsiniz ve bunlar, ortaya çıkan grafiğe otomatik olarak eklenir. (I8a470, b/182545357)

API Değişiklikleri

  • navArgument Kotlin DSL işlevi artık navigation-compose yerine navigation-common öğesinin bir parçası. Bu işlem, bu işlevi kullanmaya devam etmek için içe aktarmaların güncellenmesini gerektirir. (I1d095)

Davranış Değişiklikleri

  • Bağımsız değişkenler oluştururken, Safe Args artık varsayılan değeri olmayan parametreleri, varsayılan değerleri olanların önüne yerleştiriyor. (I89709, b/198493585)

Hata Düzeltmeleri

  • Gezinme Yazma'yı kullanırken NavGraphs yalnızca tüm alt öğeleri DESTROYED olduğunda DESTROYED olacaktır. (I86552, b/198741720)
  • Boş değer atanabilir NavDeepLink bağımsız değişkenleri artık varsayılan değer gerektirmez. (Ia14ef, b/198689811)
  • setGraph() yeni bir grafikle çağrıldığında, önceki arka yığını açma davranışına ek olarak kayıtlı tüm yığınlar da temizlenir. (I97f96)
  • launchSingleTop kullanılırken OnDestinationChangedListener örneklerine ve currentBackStackEntryFlow örneklerine bilgi verilmemesine neden olan sorun düzeltildi. (Iaaebc)

Bağımlılık Güncellemeleri

Sürüm 2.4.0-alpha08

1 Eylül 2021

androidx.navigation:navigation-*:2.4.0-alpha08 yayınlandı. 2.4.0-alpha08 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Artık NavType sınıfını özel NavType'lar oluşturacak şekilde genişletmek mümkündür. Özel türler yalnızca gezinme grafiğinizi programatik olarak oluştururken (ör. Gezinme Grafiği Kotlin DSL) desteklenir. (I78440, b/196871885)

Davranış Değişiklikleri

  • İşlem oluşturulurken, Güvenli Bağımsız Değişkenler'den oluşturulan Kotlin kodu artık varsayılan değeri olmayan bağımsız değişkenleri, parametre olarak varsayılan değerlere sahip olanlardan önce yerleştiriyor. (Idb697, b/188855904)
  • Derin bağlantılar artık, gerekli tüm bağımsız değişkenlerin (varsayılan değere sahip olmayanlar) Uri içinde mevcut olduğunu doğruluyor. (#204, b/185527157)

Hata Düzeltmeleri

  • getBackStackEntry ve previousBackStackEntry bunların içinde composable() ile birlikte remember() kullanılması, artık arka yığında hedef olmaması gibi bir istisnaya neden olmayacak. (I75138, b/194313238)
  • Gezinme Oluşturma işlemi artık geri yığın bağımsız değişkenlerini değiştirirken ve launchSingleTop=true kullanırken düzgün şekilde yeniden oluşturur. (Iebd69, b/186392337)
  • 13 veya 29 hedef içeren bir grafik içeren setGraph aramasında artık ArrayIndexOutOfBoundsException olmayacak. (I1a9f1, b/195171984)
  • SafeArgs java oluşturucu, artık Args sınıfları oluştururken lint uyarılarına neden olmamalıdır. (I1a666, b/185843837)

Harici Katkı

  • Derin bağlantıların, gerekli tüm bağımsız değişkenlerin (varsayılan değerleri olmayanlar) Uri içinde bulunduğunu doğruladığından emin olduğunuz için ospixd'ne teşekkür ederiz. (#204, b/185527157)

Sürüm 2.4.0-alpha07

18 Ağustos 2021

androidx.navigation:navigation-*:2.4.0-alpha07 yayınlandı. 2.4.0-alpha07 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Gezinme Oluştur artık yapılandırma değişikliklerinden sonra ve çoklu yığın yığın özelliğini kullanırken grafikleri değiştirirken durumu düzgün bir şekilde kaydediyor. (If5a3d, b/195141957)
  • Birden fazla arka yığınla gezinme oluşturma kullanılırken aynı sekmenin yeniden seçilmesi artık boş ekranla sonuçlanmaz. (I860dc, b/194925622)
  • NavHost artık NavBackStackEntry öğelerinin Lifecycle.State içindeki değişiklikleri gözlemliyor. Bu da bir parçada NavHost kullanmanın, boş bir ekran yerine yaşam döngüsü değiştikçe uygun bir şekilde yeniden oluşturulacağı anlamına gelir. (I4eb85, b/195864489)
  • Etkinliğiniz yeniden oluşturulduktan sonra (ör. yapılandırma değişikliğinden sonra) DialogFragment kapatıldığında NavController durumunun doğru şekilde güncellenmemesi sorunu düzeltildi. (Icd72b)
  • İletişim kutusu hedefi açmanın, NavController'ın sistem geri düğmesi işlemesini güncellememesi ve ortaya çıkacak herhangi bir geri yığını olmasa bile NavController'ın geri düğmesine müdahale etmesine neden olma sorunu giderildi. (If3b34)
  • Güvenli bağımsız değişkenler artık ViewModel kodunuzu test etmek üzere kullanılabilecek bağımsız değişkenler için otomatik olarak toSavedStateHandle yöntemi oluşturuyor. (If1e2d, b/193353880)

Sürüm 2.4.0-alpha06

4 Ağustos 2021

androidx.navigation:navigation-*:2.4.0-alpha06 yayınlandı. 2.4.0-alpha06 sürümü bu kayıtları içerir.

API Değişiklikleri

  • AbstractListDetailFragment hizmetindeki requireSlidingPaneLayout() ve requireDetailPaneNavHostFragment() yöntemleri, sırasıyla getSlidingPaneLayout() ve getDetailPaneNavHostFragment() olarak yeniden adlandırıldı. (I34a08)

Davranış Değişiklikleri

  • Animasyonlarla (Crossfade gibi) gezinirken yeni hedefin Lifecycle öğesi artık yalnızca animasyon tamamlandığında yalnızca RESUMED değerine ulaşır. (If0543, b/172112072, b/194301889)
  • Gezinme Oluştur'un NavHost özelliği artık grafiği ilk bestenin bir parçası olarak ayarlıyor. (Ieb7be)

Hata Düzeltmeleri

  • Gezinme grafiğinin son hedefi tıklandığında artık ClassCastException bildirimi almazsınız. (If0543, b/172112072, b/194301889)
  • Uri olmadan derin bağlantı eklerken ve rota ya da derin bağlantı üzerinden gezinirken oluşan NullPointerException düzeltildi. (938a0c, b/193805425)
  • Gezinme Yazma'da, derin bağlantılı bir NavBackStackEntry öğesinin RESUMED durumuna erişememesine neden olan sorun düzeltildi. (I192c5)
  • Bir iletişim kutusu hedefinin açılması, NavController'ın sistem geri düğmesi işlemesini güncellememesi ve ortaya çıkacak herhangi bir arka yığını olmamasına rağmen NavController'ın geri düğmesine müdahale etmesine neden olan sorun giderildi. (aosp/1782668)

Sürüm 2.4.0-alpha05

21 Temmuz 2021

androidx.navigation:navigation-*:2.4.0-alpha05 yayınlandı. 2.4.0-alpha05 sürümü bu kayıtları içerir.

Davranış Değişiklikleri

  • Gezinme Oluştur'un NavHost özelliği artık hedefler arasında gezinirken her zaman çapraz geçişleri kullanıyor. (I07049, b/172112072)
  • Artık bir NavHost'un grafiğinde değişiklik yapabilirsiniz. Grafikte aynı startDestination ve hedeflere sahip grafiklerin eşit kabul edilir ve NavController arka yığınını temizlemez. (I0b8db, b/175392262)

Hata Düzeltmeleri

  • NavController'ın durumunda geri gelen güncellemelerin neden olduğu bir NavBackStackEntry öğesine eklenmiş LifecycleObserver içinden popBackStack() çağrılırken ortaya çıkan NoSuchElementException düzeltildi. (I64621)
  • AbstractListDetailFragment artık AbstractListDetailFragment kullanılmadığında SlidingPaneLayout uygulamasının APK'nızdan tamamen çıkarılmasına izin veriyor. (I611ad)
  • NavGraph ve NavDestination artık eşittir yöntemini geçersiz kılar. Böylece aynı değerlere sahip iki nesne eşit olarak kabul edilir. (I166eb, b/175392262)

Sürüm 2.4.0-alpha04

1 Temmuz 2021

androidx.navigation:navigation-*:2.4.0-alpha04 yayınlandı. 2.4.0-alpha04 sürümü bu kayıtları içerir.

Yeni Özellikler

  • navigation-fragment yapısı artık yeni AbstractListDetailFragment aracılığıyla önceden oluşturulmuş iki bölmeli düzen uygulamasını içermektedir. Bu parça, örnek uygulamamızda gösterildiği gibi, liste bölmesini (alt sınıfınızın sağladığı) ve uygulaması olarak NavHostFragment kullanan bir ayrıntı bölmesini yönetmek için bir SlidingPaneLayout kullanır. (Iac4be, b/191276636)
  • navigation-compose yapısının NavHost'i artık composable hedefe ek olarak dialog hedefi de desteklemektedir. Bu iletişim kutusu hedeflerinin her biri, mevcut composable hedefinin üzerinde kayan bir Oluşturulabilir Dialog içinde gösterilir. (I011d0)
val navController = rememberNavController()
    Scaffold { innerPadding ->
        NavHost(navController, "home", Modifier.padding(innerPadding)) {
            composable("home") {
                // This content fills the area provided to the NavHost
                HomeScreen()
            }
            dialog("detail_dialog") {
                // This content will be automatically added to a Dialog() composable
                // and appear above the HomeScreen or other composable destinations
                DetailDialogContent()
            }
        }
    }

API Değişiklikleri

  • NavigatorState öğesindeki add işlevi, push olarak yeniden adlandırıldı. add() için yapılan tüm mevcut çağrıların push() olarak değiştirilmesi gerekiyor. (Ie89fc, b/172112072)
  • Özel Navigator örnekleri artık NavigatorState üzerindeki pushWithTransaction ve popWithTransition API'lerini kullanarak bir hedefi eşzamansız olarak aktarabilir veya büyütebilir. Bu API'ların henüz dahil edilen gezginlerden hiçbiri tarafından kullanılmadığını unutmayın. (Ic4d7c, b/172112072)

Davranış Değişiklikleri

  • NavDeepLinkBuilder, artık createPendingIntent() tarafından döndürülen PendingIntent öğesine PendingIntent.FLAG_IMMUTABLE ekleyerek bu API'nin Android 12 hedeflenirken beklendiği gibi çalışmasını sağlar. (If8c52)

Hata Düzeltmeleri

  • <include-dynamic> ile ilgili olarak, grafiğe iletilen bağımsız değişkenlerin, dinamik olarak eklenen grafiğe doğru şekilde iletilmemesine neden olan sorun düzeltildi. (I3e115)
  • @null varsayılan değerine sahip string[] bağımsız değişkeni kullanılarak bir hedefe gidilirken karşılaşılan NullPointerException düzeltildi. (I1fbe8)
  • R8 3.1 tam modunu kullanırken karşılaşılan sorunları düzelterek @Navigator.Name için ProGuard kuralları ekleyin. (I2add9, b/191654433)
  • Uygulamanızı 1.5.0 tarihinden önce Kotlin sürümleriyle derlediğinizde SafeArgs artık başarısız olmayacak. (Icd1ff, b/190739257)

Sürüm 2.4.0-alpha03

16 Haziran 2021

androidx.navigation:navigation-*:2.4.0-alpha03 yayınlandı. 2.4.0-alpha03 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Dahil edilen bir dinamik grafiğe gitmek için iki navigate() çağrısının gerekmesi sorunu düzeltildi. (I7785c, b/188859835)
  • Gezinme 2.4.0-alpha01 özelliğinde sunulan ve üst düzey bir hedefteyken setupActionBarWithNavController() ürününün Yukarı simgesini doğru şekilde kaldırmadığı bir regresyon düzeltildi. (I5d443, b/189868637)
  • Daha önce NavController'ın kök grafiği açıldıktan sonra popBackStack() çağrısı yapılırken oluşan IllegalStateException düzeltildi. (I2a330, b/190265699)
  • by navArgs() için ProGuard kuralları artık navigation-common veya buna bağlı yapılar kullanılırken düzgün bir şekilde uygulanmaktadır. (I68800, b/190082521)
  • İlk kez geri arama aldığında navigate() özelliğini çağıran bir OnDestinationChangedListener, artık gittiği hedefle ikinci bir geri çağırması almaktadır. (Ie5f9e, b/190228815)
  • Güvenli Aramalar artık dinamik özellik modülleri ve AGP 7.0+ ile kullanıldığında kilitlenmiyor. (I69518, b/189966576)

Bilinen Sorun

  • Kotlin'in eski bir sürümüne bağımlılık nedeniyle, Gradle 6.7.0 kullanılırken Güvenli Aramalar Unable to find method ‘’java.lang.String kotlin.text.CarsKt.titleCase(char, java.util.Locale)’’ hatasıyla başarısız olur. Bu sorun, Gradle 7.0'a geçiş yaparak giderilebilir. (b/190739257)

Sürüm 2.4.0-alpha02

2 Haziran 2021

androidx.navigation:navigation-*:2.4.0-alpha02 yayınlandı. 2.4.0-alpha02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Rotalar artık Etkinlik, Parça ve İletişim Kutusu hedeflerinin yanı sıra Dynamic Navigation Kotlin DSL'de desteklenmektedir. (Ib5544, Ia617b, I22f96, b/188914648, b/188901565)
  • Durumunuzun kaydedilmesini devre dışı bırakmanıza olanak tanımak için NavigationUI geçici olarak deneysel API'ler ekledi. Durumun kaydedilmesi her zaman doğru davranış olsa da kullanımdan kaldırılan kitaplıkların (yani saklanan parçalar) hâlâ kullanımları durum kaydedildiğinde desteklenemez. Bu nedenle, uygulamaların desteklenmeyen API'lerden yavaş yavaş dönüşüm gerçekleştirmesine fırsat tanır. (Idf93c)
  • Navigasyon artık, özel NavigationUI'yi uygulamaya yardımcı olmak için kullanılabilecek findDestination() ve getHierarchy() API'leri sunuyor. findDestination(), NavGraph üzerinde bulunan ve grafikte bir hedef belirleyecek bir uzantı işlevidir. getHierarchy(), NavDestination üzerinde belirli bir hedefin başka bir hedefin hiyerarşisi içinde olup olmadığını doğrulamak için kullanılabilecek bir işlevdir.(I2932f, b/188183365)

    val matchingRoute: Boolean = destination.hierarchy.any { it.route == routeToFind }
    
  • BottomNavigationView alan NavigationUI yöntemleri, bunun yerine NavigationBarView Materyali'nde sunulan üst sınıfı alacak şekilde güncellendi.1.4.0 Bu, söz konusu yöntemlerin NavigationRailView ile kullanılmasına olanak tanır. (Ib0b36, b/182938895)

  • XML aracılığıyla bir <action> öğesi şişirilirken animasyon özellikleri, app:enterAnim="?attr/transitionEnter" söz dizimi kullanılarak temanızdan alınan özellikleri kullanabilir. (I07bc1, b/178291654)

API Değişiklikleri

Hata Düzeltmeleri

  • DialogFragmentNavigator artık NavigatorState.pop() API'sini kullanarak bir iletişim kutusu sistem geri düğmesine veya dışını tıklayarak kapatıldığında NavController durumunu bilgilendiriyor. Böylece, NavController durumunun her zaman Gezinme Aracı'nın durumuyla senkronize olmasını sağlıyor. (I2ead9)
  • Navigasyon, artık OnDestinationChangedListeners listesi onDestinationChanged geri çağırmasıyla değiştirilirken ConcurrentModificationException sağlamaz. (Ib1707, b/188860458)

  • Güvenli Aramalar artık Kotlin'de yol tarifi özellikleri oluşturmaya çalışırken çökmez. (Id2416, b/188564435)

  • NavDestination üzerindeki setId yöntemine artık doğru şekilde @IdRes ek açıklaması eklenmiştir ve bu nedenle yalnızca kaynak kimliklerini kabul etmektedir. (I69b80)

  • findNode öğesinin int parametresi artık resid yerine resId oldu. (I7711d)

Bağımlılık Güncellemesi

  • Güvenli Aramalar artık Android Gradle Eklentisi 4.2.0'a bağlıdır. Bu durumda, artık applicationIdTextResource kullanma uyarısı almazsınız. (I6d67b, b/172824579)

Sürüm 2.4.0-alpha01

18 Mayıs 2021

androidx.navigation:navigation-*:2.4.0-alpha01 yayınlandı. 2.4.0-alpha01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • NavController üzerindeki currentBackStackEntryAsFlow() yöntemi, mevcut NavBackStackEntry değiştiğinde tetiklenen bir Flow sağlar. Bu akış, OnDestinationChangedListener manuel olarak yönetmeye alternatif olarak kullanılabilir. (I19c4a, #89, b/163947280)

Birden çok arka grup

NavController, hedef grubunun arka yığınını yönetmekten, navigate() işlemi gerçekleştirdiğinizde arka yığına hedefler eklemekten ve popBackStack() çağrısı yaptığınızda veya sistem geri düğmesini tetiklediğinizde kaldırmaktan sorumludur. Mevcut NavOptions sınıfı ve gezinme grafiği XML'sindeki <action> girişleriyle entegrasyon, arka yığının kaydedilmesini ve geri yüklenmesini destekleyecek şekilde genişletilmiştir. (b/80029773)

Bu değişiklik kapsamında onNavDestinationSelected(), BottomNavigationView.setupWithNavController() ve NavigationView.setupWithNavController() kapsamındaki NavigationUI yöntemleri artık pop-up hedeflerin durumunu otomatik olarak kaydedip geri yükleyerek herhangi bir kod değişikliği olmadan birden fazla arka yığın desteğini etkinleştirir. Gezinme Parçalarla Gezinme özelliğini kullanırken birden fazla arka plan yığınıyla entegrasyon için önerilen yöntem budur. (Ie07ca)

Durumu kaydetme ve geri yüklemeyle ilgili temel API'ler, çeşitli yüzeylerle gösterilir:

  • Navigasyon XML'sinde <action> öğesi, app:popUpTo aracılığıyla açılan hedeflerin durumunu kaydetmek ve app:destination olarak iletilen hedefle ilişkilendirilen durumu geri yüklemek için artık app:popUpToSaveState ve app:restoreState boole özelliklerini kullanabilir:

    <action
      android:id=”@+id/swap_stack”
      app:destination=”@id/second_stack”
      app:restoreState=”true”
      app:popUpTo=”@id/first_stack_start_destination”
      app:popUpToSaveState=”true” />
    
  • navOptions Kotlin DSL'de, popUpTo oluşturucuda restoreState boole özelliğini ve saveState boole özelliğini ekleyebilirsiniz:

    // Use the navigate() method that takes a navOptions DSL Builder
    navController.navigate(selectedBottomNavRoute) {
      launchSingleTop = true
      restoreState = true
      popUpTo(navController.graph.startDestinationId) {
        saveState = true
      }
    }
    
  • NavOptions.Builder aracılığıyla manuel olarak bir NavOptions nesnesi oluştururken, ek saveState parametresi alan setPopUpTo() için setRestoreState() ve yeni aşırı yüklemeyi kullanabilirsiniz.

    NavOptions navOptions = new NavOptions.Builder()
      .setLaunchSingleTop(true)
      .setRestoreState(true)
      .setPopUpTo(navController.getGraph().getStartDestinationId(),
        false, // inclusive
        true) // saveState
      .build();
    navController.navigate(selectedBottomNavId, null, navOptions);
    
  • popBackStack()'e yapılan programatik çağrılar artık ek bir saveState parametresi içerebilir.

Her durumda NavController, gezinme hedefi kapsamındaki ViewModel örnekleri de dahil olmak üzere her NavBackStackEntry öğesinin durumunu kaydedip geri yükler. Navigator API'leri, her bir Navigator öğesinin kendi durumunu kaydetmeyi ve geri yüklemeyi desteklemesini sağlayacak şekilde güncellendi.

Gezinme Oluşturma Aracı'ndaki composable hedefleri için kullanılan ComposeNavigator ve Parçalarla Gezinme'deki <fragment> hedef için kullanılan FragmentNavigator ile DynamicFragmentNavigator, hem yeni Navigator API'lerini kullanacak, hem de kaydetme ve geri yükleme durumunu destekleyecek şekilde güncellendi.

Navigasyon Rotaları

Rota, bir hedefi benzersiz şekilde tanımlayan bir String'dir. Daha önce yalnızca gezinme menüsünde kullanılan bu kavram, artık temel Gezinme API'lerinin bir parçası haline gelmiştir. Bu, gezinme Kotlin DSL'si ile grafiğinizi oluştururken tam sayı kimlikleri kullanmaya bir alternatif sağlar. (b/172823546)

Daha önce yalnızca kimlik alan tüm API'lerde artık String rotasını kullanan bir aşırı yük bulunuyor. Buna navigate(), popBackStack(), popUpTo() ve getBackStackEntry() dahildir.

Bu durum, API'de bazı sorunlara yol açmıştır:

  • Kotlin DSL'sinde popUpTo kotlin özelliği kullanımdan kaldırılarak yerine popUpToId eklendi. (I59c73, b/172823546)
  • getStartDestination() API, kullanımdan kaldırılmış ve yerini getStartDestinationId() almıştır. (I0887f, b/172823546)

Bu, gezinmenin önceki sürümlerinden Navigation Compose'a 2.4.0-alpha01 geçiş yapan geliştiriciler için, uzantı yöntemlerinde aşağıdaki içe aktarma işlemlerinin artık gerekli olmadığı ve kaldırılacağı anlamına gelir:

import androidx.navigation.compose.navigation
import androidx.navigation.compose.createGraph
import androidx.navigation.compose.getBackStackEntry
import androidx.navigation.compose.navigate
import androidx.navigation.compose.popUpTo

KEY_ROUTE bağımsız değişkeni NavDestination üzerinde route özelliği ile değiştirildi, böylece navBackStackEntry.destination.route doğrudan çağrılabilir.

API Değişiklikleri

  • Tüm Navigasyon eserleri Kotlin ile yeniden yazıldı. Bu, genel öğeleri (NavType alt sınıfları gibi) kullanan sınıfların boş değer atanmasını artırdı. Daha önce -ktx yapılarının bir parçası olan tüm Kotlin uzantı işlevleri, ilgili ana yapılarına taşındı. -ktx yapıları yayınlanmaya devam eder ancak tamamen boş olur. (b/184292145)
  • NavDeepLinkBuilder artık oluşturulan arka yığına birden fazla farklı hedef eklemeyi destekliyor. (I3ee0d, b/147913689)
  • DynamicNavHostFragment için fabrika işlevlerini ekleyin (Icd515, b/175222619)
  • NavBackStackEntry öğesinin benzersiz kimliği, herkese açık API'si kapsamında artık kullanıma sunulmuştur. (Ie033a)
  • NamedNavArgument öğesinin name ile argument alanları ve yapılandırma işlevleri artık herkese açık. (#174, b/181320559)
  • İlgili beste yerellerine NavBackStackEntry sağlayan yeni NavBackStackEntry#provideToCompositionLocals uzantısını kullanıma sundu. (#175, b/187229439)

Güvenli Aramalar

  • Safe Args artık her NavArgs sınıfı için bir fromSavedStateHandle() yöntemi oluşturuyor. (#122, b/136967621)

    class HomeViewModel(savedStateHandle: SavedStateHandle) : ViewModel() {
      // Create a HomeDestinationArgs class with type safe accessors for each argument
      // defined on your destination
      private val args = HomeDestinationArgs.fromSavedStateHandle(savedStateHandle)
    }
    
  • Güvenli Arg'lar, KotlinPoet 1.8.0 temel alınarak güncellendi. (#172, b/183990444)

Davranış Değişiklikleri

  • Gezinme artık Yaşam Döngüsü 2.3.1'ne bağlıdır ve setGraph(), popBackStack(), navigateUp() ve navigate() adlı yöntemler, NavBackStackEntry Lifecycle'u @MainThread olarak güncelleyen ve Gezinme'yi Yaşam Döngüsü 2.3.0'nde tanıtılan ana iş parçacığı yaptırımı ile uyumlu hale getiren yöntemlerdir. (b/171125856)
  • Derin bağlantılardan Enum bağımsız değişkenlerinin ayrıştırılması artık büyük/küçük harfe duyarlı değildir ve http://www.example.com/red gibi bir derin bağlantının, enum RED değerine sahip olsa bile www.example.com/{color} derin bağlantısıyla eşleştirmesine olanak tanır. (#152, b/135857840)

Oluşturma uyumluluğu

  • androidx.navigation:navigation-compose:2.4.0-alpha01 yalnızca Oluştur 1.0.0-beta07 ve sonraki sürümlerle uyumludur.

Hata Düzeltmeleri

  • Sondaki bağımsız değişken yer tutucularının, tam olarak eşleşen bir son eke sahip derin bağlantılara göre öncelikli olmasına neden olan sorun düzeltildi. (#153, b/184072811)
  • NavHostFragment artık varsayılan DialogFragmentNavigator ile aynı @Navigator.Name("dialog") değerini kullanan özel gezginleri destekliyor. (Ib1c2c, b/175979140)
  • Aynı örnekle tekrar tekrar çağrılmasının soruna neden olmaması için NavigatorProvider#addNavigator davranışı iyileştirildi. (#176, b/187443146)

Harici Katkılar

  • Her NavArgs sınıfı için bir fromSavedStateHandle() yöntemi oluşturan Safe Args'e destek sağladığınız için simonschiller'e teşekkür ederiz. (#122, b/136967621)
  • Derin bağlantılardan enum bağımsız değişkenlerini büyük/küçük harfe duyarlı hale getirmediğiniz için Bradleycorn'a teşekkür ederiz. (#152, b/135857840)
  • Sondaki bağımsız değişken yer tutucularının, tam olarak eşleşen bir son eke sahip derin bağlantılara göre öncelikli olması sorununu çözdüğünüz için osipxd teşekkür ederiz. (#153, b/184072811)
  • Güvenli Arg'ları KotlinPoet 1.8.0 sürümünü kullanacak şekilde güncellediğiniz için tatocaster'a teşekkür ederiz. (#172, b/183990444)
  • name ve argument alanlarını ve NamedNavArgument yapısının yapılandırma işlevlerini herkese açık yaptığınız için jossiwolf'a teşekkür ederiz. (#174, b/181320559)
  • NavBackStackEntry öğesini ilgili beste yerlilerine sağlayan yeni NavBackStackEntry#provideToCompositionLocals uzantısını tanıttığınız için jossiwolf'a teşekkür ederiz. (#175, b/187229439)
  • NavigatorProvider#addNavigator öğesinin aynı örnekle tekrar tekrar çağrılmasının soruna neden olmamasını sağlamak üzere iyileştirilmiş davranışı için jossiwolf'a teşekkür ederiz. (#176, b/187443146)

Sürüm 1.0.0-alfa10

7 Nisan 2021

androidx.navigation:navigation-compose:1.0.0-alpha10 yayınlandı. Sürüm 1.0.0-alpha10 bu kayıtları içerir.

API Değişiklikleri

  • NavHost artık hedef composable'ları sarmalayan composable container'a aktarılacak Modifier öğesini kabul ediyor. (I85aca, b/175125483)

Hata Düzeltmeleri

  • NavHost artık bir OnBackPressedDispatcherOwner bulunamadığında bile çalışıyor. NavHost önizlenirken durum böyledir. (I7d8b4)
  • Gezinme menüsü oluşturma özelliği artık gezinme 2.3.5 özelliğine bağlı olduğundan NavHost hedefinde BackHandler kullanılırken oluşan bir sorun düzeltildi. (I7e63b, b/182284739)

Sürüm 1.0.0-alpha09

10 Mart 2021

androidx.navigation:navigation-compose:1.0.0-alpha09 yayınlandı. Sürüm 1.0.0-alpha09 bu kayıtları içerir.

API Değişiklikleri

  • LocalViewModelStoreOwner.current, mevcut bileşimde bir ViewModelStoreOwner kullanılıp kullanılamadığını daha iyi belirlemek için artık null özellikli bir ViewModelStoreOwner döndürüyor. viewModel() ve NavHost gibi bir ViewModelStoreOwner gerektiren API'ler, ViewModelStoreOwner ayarlanmamışsa yine de istisna oluşturur. (Idf39a)

Hata Düzeltmeleri

  • Gezinmeyi Oluşturma özelliği artık Gezinme 2.3.4'e dayanmaktadır. Bu sürüm, grafik ayarlandıktan sonra aynı ViewModelStore nesnesini ayarlamaya yönelik düzeltmeyi içerir. (I65c24, b/177825470)

Sürüm 1.0.0-alpha08

24 Şubat 2021

androidx.navigation:navigation-compose:1.0.0-alpha08 yayınlandı. 1.0.0-alpha08 sürümü bu kayıtları içerir.

Yeni Özellikler

  • NavHost artık LocalSavedStateRegistryOwner CompositionLocal öğesini bu hedefin NavBackStackEntry değeriyle doldurarak SavedStateRegistry içine doğrudan kaydedilen tüm durumların hedefle birlikte kaydedilip geri yüklenmesini sağlar. (I435d7, b/179469431)

Sürüm 1.0.0-alpha07

10 Şubat 2021

androidx.navigation:navigation-compose:1.0.0-alpha07 yayınlandı. 1.0.0-alpha07 sürümü bu kayıtları içerir.

Bağımlılık Güncellemeleri

Sürüm 1.0.0-alpha06

28 Ocak 2021

androidx.navigation:navigation-compose:1.0.0-alpha06 yayınlandı. 1.0.0-alpha06 sürümü bu kayıtları içerir.

API Değişiklikleri

  • NavController öğesine, ilişkilendirilmiş NavBackStackEntry değerini döndüren bir getBackStackEntry(route: String) uzantısı yöntemi eklendi. (If8931)

Sürüm 1.0.0-alpha05

13 Ocak 2021

androidx.navigation:navigation-compose:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.

Compose 1.0.0-alpha10'a bağlı olarak güncellendi.

Sürüm 1.0.0-alpha04

16 Aralık 2020

androidx.navigation:navigation-compose:1.0.0-alpha04 yayınlandı. Sürüm 1.0.0-alpha04 bu kayıtları içerir.

  • Oluşturma 1.0.0-alpha09 ile uyumluluk için güncellendi.

Sürüm 1.0.0-alpha03

2 Aralık 2020

androidx.navigation:navigation-compose:1.0.0-alpha03 yayınlandı. 1.0.0-alpha03 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Bir yapılandırma değişikliğinden veya işlem ölümü ve yeniden oluşturma sonrasında popBackStack() ve navigateUp() uygulamalarının çalışmaması sorunu düzeltildi. (Buz 47, b/173281473)
  • NavHost'unuzda iç içe yerleştirilmiş bir grafiğe gitmek artık düzgün çalışıyor. (I0948d, b/173647694)

Sürüm 1.0.0-alpha02

11 Kasım 2020

androidx.navigation:navigation-compose:1.0.0-alpha02 yayınlandı. Sürüm 1.0.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • Gezinme oluşturma, popUpTo ve launchSingleTop işlemlerini kullanmak için artık NavOptions'ı destekliyor (If96c3, b/171468994)
  • Gezinme Oluşturma DS'de iç içe yerleştirilmiş grafikler oluşturmanıza olanak tanıyan bir kimlik yerine rota alan bir gezinme işlevi eklendi. (I1661d)
  • startDestination, NavHost (Ie620e) parametre parametreleri listesinde artık rotadan önce geliyor
  • Artık rotayı NavHost composable'ın dışında başlangıç hedefi olarak kullanarak bir grafik oluşturabilirsiniz. (Iceb75)

Sürüm 1.0.0-alpha01

28 Ekim 2020

android.navigation:navigation-compose:1.0.0-alpha01 yayınlandı. 1.0.0-alpha01 sürümü bu kayıtları içerir.

Yeni Özellikler

navigation-compose yapısı, Gezinme Bileşeni ile Jetpack Compose arasında entegrasyon sağlar. Uygulamanızda hedef olarak @Composable işlevlerini kullanır.

Bu ilk sürüm aşağıdakileri sağlar:

  • Gezinme grafiğinizi Kotlin DSL ile oluşturmanıza olanak tanıyan bir NavHost composable'ı.
  • Hedef düzeyinde yaşam döngüsü, ViewModel ve hatırlanan durum kapsamı.
  • Sistem geri düğmesiyle otomatik entegrasyon.
  • Bağımsız değişkenleri iletme, hedeflere derin bağlantılar ekleme ve bir sonucu önceki hedeflere döndürme desteği.
  • Kaldırma durumuna ve NavController öğesini NavHost dışındaki composable'lara (ör. alt gezinme çubuğu) bağlamaya izin vermek için rememberNavController() ve currentBackStackEntryAsState() içinde belirli yardımcılar oluşturun.

Daha fazla bilgi için Gezinme kılavuzuna göz atın.

Sürüm 2.3.5

Sürüm 2.3.5

7 Nisan 2021

androidx.navigation:navigation-*:2.3.5 yayınlandı. Sürüm 2.3.5 bu kayıtları içerir.

Yeni Özellikler

  • NavDeepLinkRequest veya Uri kullanarak gezinirken artık KEY_DEEP_LINK_INTENT aracılığıyla bağımsız değişkenlerden niyeti alarak sonuçtaki hedefteki Uri, işlem ve MIME türüne erişebilirsiniz. Böylece, harici derin bağlantılar için hâlihazırda kullanılabilen işlevi yansıtabilirsiniz. (I975c3, b/181521877)

Hata Düzeltmeleri

  • OnBackPressedCallbacks adlı görev dağıtıcıya, Yaşam Döngüsü Sahibi olarak NavBackStackEntry ile birlikte, Etkinlik Yaşam Döngüsü STOPPED, ardından STARTED (Iff94f, b/182284739) olduktan sonra düzgün şekilde müdahale eden OnBackPressedCallbacks eklendi
  • Derin bağlantı alan ayrıştırma işlemi artık büyük/küçük harfe duyarlı değildir. Böylece www.example.com hem www.example.com hem de www.Example.com ile eşleşir. Sorgu parametresi adlarının büyük/küçük harfe duyarlı olmaya devam ettiğini unutmayın. (#144, b/153829033)
  • Bir hedefin birden fazla boş olmayan varsayılan bağımsız değişkeni olduğunda ve bu hedefe giderken bu bağımsız değişkenlerin yalnızca bir alt kümesini geçersiz kıldığınızda ortaya çıkan NullPointerException düzeltildi. (aosp/1644827)

Bağımlılık Güncellemeleri

  • Gezinme Güvenli Args Gradle Eklentisi artık Kotlin Gradle Eklentisi 1.4.31'e bağlıdır. (aosp/1661058, b/181156413)

Harici Katkı

  • Derin bağlantı alan ayrıştırmasını büyük/küçük harf duyarsız hale getiren pull isteği için teşekkür ederiz bentrengrove. (#144, b/153829033)

Sürüm 2.3.4

Sürüm 2.3.4

10 Mart 2021

androidx.navigation:navigation-*:2.3.4 yayınlandı. 2.3.4 sürümü bu kayıtları içerir.

Yeni Özellikler

  • ReferenceType bağımsız değişkenleri, derin bağlantı URI'sının parçası olarak gönderildiğinde düzgün bir şekilde ayrıştırılabilir. Bu, hem ham tam sayı değerini hem de 0x ön ekine sahip onaltılık değerleri destekler. (#127, b/179166693)
  • app:argType="float" içeren bir bağımsız değişken için android:defaultValue artık tamsayı varsayılan değerlerini desteklemektedir. Böylece, 0.0 kullanımını zorunlu kılmak yerine android:defaultValue="0" kullanmanıza olanak tanır. (#117, b/173766247)

Hata Düzeltmeleri

  • Navigasyon'un dinamik özellikler desteğini kullanırken takılan yükleme ilerleme durumunu düzeltme (Ib27a7, b/169636207)
  • setViewModelStore veya setLifecycleOwner için ayarlanmış olan aynı nesne artık işlemsiz (Idf491, b/177825470) olacaktır
  • Safe-Args artık java kullanırken uygun yöntemlere engelleme ek açıklamaları ekliyor. (I8fbc5, b/179463137)

Harici Katkılar

  • ReferenceType bağımsız değişkenlerinin, derin bağlantı URI'sının parçası olarak gönderildiğinde düzgün bir şekilde ayrıştırılabilmesi için pull isteği için JvmName'e teşekkür ederiz. (#127, b/179166693)
  • app:argType=”float” içeren bir bağımsız değişken için defaultValue öğesine izin verme amaçlı pull isteği için teşekkür ederiz tatocaster, artık tamsayı varsayılan değerlerini destekliyor. (#117, b/173766247)

Sürüm 2.3.3

Sürüm 2.3.3

27 Ocak 2021

androidx.navigation:navigation-*:2.3.3 yayınlandı. 2.3.3 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • NavBackStackEntry öğesi, Lifecycle öğesi CREATED öğesine taşınmadan önce çoğaltılırken artık kilitlenme meydana gelmez. (Ie3ba3)
  • Animasyon kaynak değeri 0 olan bir etkinliğe gitmenin ResourceNotFoundException neden olduğu b/171364502 sorunu düzeltildi. (I7aedb, b/176819931)

Sürüm 2.3.2

Sürüm 2.3.2

2 Aralık 2020

androidx.navigation:navigation-*:2.3.2 yayınlandı. 2.3.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • NavigationUI ürününde, onNavDestinationSelected ile bir <activity> hedefi kullanıldığında Etkinlik'e gidememesine neden olan bir regresyon düzeltildi. (I22e34, b/171364502)
  • navigation-dynamic-features-fragment öğesinin, yeni yüklenen hedefe birden çok kez gidilmesine neden olan bir sorun düzeltildi. (aosp/1486056, b/169636207)
  • launchSingleTop kullanılırken varsayılan bağımsız değişkenlerin OnDestinationChangedListener örneğine gönderilmemesine neden olan sorun düzeltildi. (I2c5cb)
  • İç içe yerleştirilmiş bir gezinme grafiğine gitmenin, arka yığında yeni bir grafik örneği oluşturmamasına neden olan sorun düzeltildi. (Ifc831)
  • navigate() kullanımının, gezinme grafiğindeki son hedefi kaldıran bir popUpTo ile kullanılmasının, gezinme grafiğinin kendisini arka yığından hemen bozmaması ve kaldırmaması sorunu düzeltildi. (I910a3)
  • Navigasyon SafeArgs artık KotlinPoet'un 1.7.2 sürümünü kullanıyor. Bu sürüm, Kotlin'in açık API modu için destek ekliyor. (I918b5)
  • NavHostFragment.findNavController(Fragment), artık Fragment hiyerarşisi ve Fragment görünüm hiyerarşisinin mevcut denetimlerine ek olarak bir DialogFragment'in kök dekor görünümünü de kontrol ediyor. Bu, FragmentScenario ve Navigation.setViewNavController() ile Gezinme'yi kullanan iletişim kutusu parçalarını test etmenize olanak tanır. (I69e0d)

Sürüm 2.3.1

Sürüm 2.3.1

14 Ekim 2020

androidx.navigation:navigation-*:2.3.1 yayınlandı. 2.3.1 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Gezinme kullanıcı arayüzüne varsayılan Animator kaynakları eklendi ve varsayılan animasyon kaynakları yerine bu kaynakların kullanılması önerilir. (b/167430145)
  • NavOptions artık karma kodunu geçersiz kılıyor ve eşittir yöntemlerini (b/161586466)
  • Gezinme artık geçerli hedefi "Kimliği olan hedef yok" IllegalArgumentException'a dahil ediyor. Bu, geliştiricilerin hata ayıklama deneyimini iyileştirecek. (b/168311416)

Hata Düzeltmeleri

  • Güvenli Anahtarlar, oluşturulan bağımsız değişken sınıfı adı 100 karakterden uzun olsa bile döndürme satırını artık sarmalamayacaktır. (b/168584987)

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

  • navigation-ui artık DrawerLayout 1.1.1'i kullanıyor ve NavigationUI bu sayede LOCK_MODE_LOCKED_CLOSED veya LOCK_MODE_LOCKED_OPEN kullanırken bile çekmeceyi açabiliyor. (b/162253907)
  • Güvenli Aramalar artık KotlinPoet 1.6.0 sürümünü kullanıyor (aosp/1435911)
  • Güvenli Aramalar artık AGP 4.0.1'e (aosp/1442337) bağlıdır

Sürüm 2.3.0

Sürüm 2.3.0

24 Haziran 2020

androidx.navigation:navigation-*:2.3.0 yayınlandı. 2.3.0 sürümü bu kayıtları içerir.

2.2.0'dan bu yana yapılan önemli değişiklikler

  • Özellik Modülü entegrasyonu: navigation-dynamic-features-runtime ve navigation-dynamic-features-fragment yapıları, özellik modüllerinde tanımlanan hedeflere gitmenize olanak tanır ve gerektiğinde özellik modüllerinin yüklenmesini otomatik olarak gerçekleştirir. Daha fazla bilgi için Özellik modülleriyle gezinme bölümüne bakın.
  • Gezinme Testi: navigation-testing yapısı, geçerli hedefi ayarlamanıza ve gezinme işlemlerinden sonra arka yığını doğrulamanıza olanak tanıyan bir TestNavHostController sağlar. Daha fazla bilgi için Gezinmeyi Test Etme konusuna bakın.
  • Sonuç Döndürme: Gezinme arka yığınındaki her bir hedefle ilişkili NavBackStackEntry, artık belirli bir arka yığın girişiyle ilişkilendirilmesi gereken küçük miktarlarda kaydedilmiş durum depolamak için uygun bir SavedStateHandle öğesine erişmenize olanak tanır. Daha fazla bilgi için Bir sonucu önceki Hedefe döndürme bölümüne bakın.
  • Openable için NavigationUI desteği: NavigationUI içindeki tüm DrawerLayout kullanımları, CustomView 1.1.0'a eklenen ve DrawerLayout 1.1.0 içinde DrawerLayout tarafından uygulanan daha genel Openable arayüzüyle değiştirildi.
  • Derin bağlantılarda İşlem ve Mime Türü desteği: Derin bağlantı, daha önce kullanıma sunulan app:uri özelliğine ek olarak app:action ve app:mimeType de desteklenecek şekilde genişletilmiştir. NavController artık yeni NavDeepLinkRequest sınıfıyla bu alanların herhangi bir kombinasyonunda gezinmeyi destekliyor. Daha fazla bilgi için NavDeepLinkRequest kullanarak gezinme konusuna bakın.

Bilinen Sorunlar

  • Derin bağlantı işlemleri ve MIME türleri için henüz Manifest Birleşmesi desteği sunulmamaktadır. Bu çalışma tamamlanana kadar, manifest dosyanızdaki <nav-graph> öğesinden oluşturulan <intent-filter> öğeleri, <data> öğesine veya özel <action> öğenize MIME türünü dahil etmeyecektir. Manifest dosyanıza manuel olarak uygun bir <intent-filter> eklemeniz gerekir.

Sürüm 2.3.0-rc01

10 Haziran 2020

androidx.navigation:navigation-*:2.3.0-rc01 yayınlandı. 2.3.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Bağımsız değişken içermeyen bir hedef örneğinin, singleTop ile içeren bağımsız değişken içeren başka bir örnekle değiştirilmesi sırasında meydana gelen NullPointerException sorunu düzeltildi. (b/158006669)
  • NavController tarafından oluşturulan tüm destination is unknown istisnaları artık NavController durumunu belirlemeye yardımcı olacak ek hata ayıklama bilgilerine sahiptir. (b/157764916)

Sürüm 2.3.0-beta01

20 Mayıs 2020

androidx.navigation:navigation-*:2.3.0-beta01 serbest bırakıldı. 2.3.0-beta01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • İşlem tamamlandıktan sonra NavBackStackEntry öğesinin Lifecycle öğesinin doğru şekilde güncellenmemesine neden olan sorun düzeltildi. (b/155218371)
  • setGraph() çağrılmadan önce kaydedilen OnDestinationChangedListener örnek, bir işlemin gerçekleşmesinden sonra geri yüklenen hedefe artık düzgün bir şekilde gönderiliyor. (b/155218371)
  • singleTop kullanılırken NavBackStackEntry artık bağımsız değişkenleri doğru şekilde güncellendi ve güncellenen bağımsız değişkenler tüm OnDestinationChangeListener örneklerine gönderildi. (b/156545508)

Bağımlılık Güncellemeleri

Sürüm 2.3.0-alpha06

29 Nisan 2020

androidx.navigation:navigation-*:2.3.0-alpha06 yayınlandı. (Sürüm 2.3.0-alpha06 bu kayıtları içerir.)

Yeni Özellikler

  • Derin bağlantının kapsamı, daha önce kullanıma sunulan app:uri özelliğine ek olarak app:action ve app:mimeType özelliklerini destekleyecek şekilde genişletildi. NavController artık yeni NavDeepLinkRequest sınıfı aracılığıyla bu alanların herhangi bir kombinasyonunda gezinmeyi destekliyor. (b/136573074, b/135334841)

API Değişiklikleri

  • Dinamik Gezinme hedefleri için Kotlin DSL desteği önemli ölçüde genişletildi. (b/148969800)

Hata Düzeltmeleri

  • İç içe yerleştirilmiş başlangıç hedefi kullanılırken derin bağlantı Amaçlarının yoksayılmasına neden olan sorun düzeltildi. (b/154532067)

Sürüm 2.3.0-alpha05

15 Nisan 2020

androidx.navigation:navigation-*:2.3.0-alpha05 yayınlandı. 2.3.0-alpha05 sürümü bu kayıtları içerir.

Yeni Özellikler

  • <include-dynamic> kullanılan dinamik grafik içeriyorsa, artık app:graphPackage değerini belirtmenize gerek yoktur. applicationId önekine bir noktadan sonra moduleName son eki eklenirse varsayılan değer kullanılır. graphPackage öğenizi özelleştirmeniz gerekirse artık ${applicationId} yer tutucusu desteklenmektedir. (b/152696768)
  • Gezinme Grafiği Kotlin DSL'si artık işlemler için bir defaultArguments Map sunmaktadır. Bu da, Navigation XML dosyalarındaki <action> öğelerine ilişkin varsayılan değerleri ayarlama yeteneğini yansıtmaktadır. (b/150345605)

Hata Düzeltmeleri

  • Gezinme 2.2.2'de: Etkinliğinizde birden fazla NavHostFragment örneği olduğunda grafiğinizin başlangıç hedefine derin bağlantı yapıldığında oluşan IllegalStateException düzeltildi. (b/147378752)

Bağımlılık güncellemeleri

Sürüm 2.3.0-alpha04

18 Mart 2020

androidx.navigation:navigation-*:2.3.0-alpha04 yayınlandı. 2.3.0-alpha04 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Gezinme Kotlin DSL'sinde özellik modülü etkinliği ve parça hedefleri için destek eklendi. (b/148969800)

API Değişiklikleri

  • DynamicExtras sınıfı artık derleyici kalıbı kullanmamaktadır ve artık doğrudan oluşturulabilir. (aosp/1253671)
  • DynamicActivityNavigator, artık oluşturucusunda Activity yerine bir Context alıyor. (aosp/1250252)

Hata Düzeltmeleri

  • NavigationUI artık boş etiketleri (android:label=”” içeren bir hedef) yoksaymıyor ve başlığı doğru şekilde boş bir dize olarak ayarlıyor. (b/148679860)

Bağımlılık Güncellemeleri

  • Gezinme Dinamik Özellikleri yapıları artık Play Core 1.6.5 uygulamasını temel almaktadır. (b/149556401)

Sürüm 2.3.0-alpha03

4 Mart 2020

androidx.navigation:navigation-*:2.3.0-alpha03 yayınlandı. 2.3.0-alpha03 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Somut DrawerLayout sınıfını kullanmak yerine, AppBarConfiguration artık CustomView 1.1.0-alpha02 içinde sunulan Openable arayüzünü (DrawerLayout, DrawerLayout 1.1.0-alpha04 tarihinden itibaren uygulanmaktadır) kullanır. Böylece NavigationUI ile Openable öğesinin özel uygulamalarını kullanabilirsiniz. (b/129030452)

Hata Düzeltmeleri

  • navigation-common-ktx ProGuard kuralları artık doğru şekilde, tüm NavArgs örnekleri yerine kullanılan NavArgs sınıflarını koruyor. (b/150213558)

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

  • Core 1.2.0'e olan bağımlılığı geri döndüren Navigasyon, Core 1.2.0'deki yeni API'leri temel almadığında geliştiricilerin daha yeni bir bağımlılığa geçme zorunluluğunu ortadan kaldırmak için artık Core 1.1.0 ile çalışıyor.

Sürüm 2.3.0-alpha02

19 Şubat 2020

androidx.navigation:navigation-*:2.3.0-alpha02 yayınlandı. 2.3.0-alpha02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • NavBackStackEntry artık belirli bir arka yığın girişiyle ilişkilendirilmesi gereken, az miktarda kaydedilmiş durumu depolamaya uygun bir SavedStateHandle dosyasına erişmenize olanak tanıyor. Örnek kullanım alanı için Bir sonuç döndürme bölümüne bakın. (b/79672220)

API Değişiklikleri

  • Mevcut ve önceki hedefler için NavBackStackEntry almayı kolaylaştırmak amacıyla getCurrentBackStackEntry() ve getPreviousBackStackEntry() kullanışlı yöntemler eklendi. (b/79672220)

Hata Düzeltmeleri

  • navigateUp(), uygulamanızı kendi görev yığınınızda başlatırken artık geçerli hedefin bağımsız değişkenlerini ve KEY_DEEP_LINK_INTENT öğesini önceki hedefe iletir. (b/147456890)

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

Sürüm 2.3.0-alpha01

5 Şubat 2020

androidx.navigation:navigation-*:2.3.0-alpha01 yayınlandı. Sürüm 2.3.0-alpha01 bu kayıtları içerir.

Yeni özellikler

  • Yeni navigation-testing yapısı TestNavHostController sınıfı sağlar. Bu sınıf, Gezinmeyi test ederken mevcut hedefi ayarlamanıza ve gezinme işlemlerinden sonra arka yığını doğrulamanıza olanak tanıyan örnek bir NavController kullanmaya alternatif sunar. (b/140884273)
  • Yeni navigation-dynamic-features-fragment (ve geçişli bağımlılığı navigation-dynamic-features-runtime), özellik modüllerinden hedefleri veya tüm gezinme grafiklerini (<include-dynamic> ile) eklemenize olanak tanır. Böylece bu hedeflere gidildiğinde isteğe bağlı özellik modüllerinin sorunsuz bir şekilde yüklenmesi sağlanır. Daha fazla bilgi için Özellik modülleriyle gezinme bölümüne bakın. (b/132170186)

Hata düzeltmeleri

  • Gezinme 2.2.1'den: Sorgu parametresi olmayan derin bağlantılar, artık sondaki {argument} öğelerine eklemek veya derin bağlantıyla eşleşmemek yerine tüm sorgu parametrelerini doğru bir şekilde yok sayar. (b/147447512)
  • Gezinme 2.2.1 bölümünde: DrawerArrowDrawable için navigation-ui ProGuard kuralları, android.enableJetifier=true kullanılmasının zorunlu kılınmamasını sağlayacak şekilde güncellendi. (b/147610424)
  • Gezinme 2.2.1 bölümünde: navigation-common-ktx modülünün, navigation-runtime-ktx ile aynı manifest paket adını paylaşmak yerine artık benzersiz bir manifest paketi adı vardır. (aosp/1141947)

Bağımlılık güncellemeleri

Sürüm 2.2.2

Sürüm 2.2.2

15 Nisan 2020

androidx.navigation:navigation-*:2.2.2 serbest bırakıldı. 2.2.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Etkinliğinizde birden fazla NavHostFragment örneği olduğunda grafiğinizin başlangıç hedefine derin bağlantı oluştururken karşılaşılan IllegalStateException düzeltildi. (b/147378752)
  • NavigationUI artık boş etiketleri (android:label=”” içeren bir hedef) yoksaymıyor ve başlığı doğru şekilde boş bir dize olarak ayarlıyor. Bu sürüm daha önce Gezinme 2.3.0-alpha04'te kullanıma sunulmuştur. (b/148679860)
  • navigation-common-ktx ProGuard kuralları artık doğru şekilde, tüm NavArgs örnekleri yerine kullanılan NavArgs sınıflarını koruyor. Bu sürüm daha önce Gezinme 2.3.0-alpha03'te kullanıma sunulmuştur. (b/150213558

Bağımlılık güncellemeleri

Sürüm 2.2.1

Sürüm 2.2.1

5 Şubat 2020

androidx.navigation:navigation-*:2.2.1 yayınlandı. Sürüm 2.2.1 bu kayıtları içerir.

Hata düzeltmeleri

  • Sorgu parametresi olmayan derin bağlantılar, artık tüm sorgu parametrelerini sondaki {argument} öğelerine eklemek veya derin bağlantıyla eşleşmemek yerine doğru şekilde yoksaymaktadır. (b/147447512)
  • DrawerArrowDrawable için navigation-ui ProGuard kuralları, android.enableJetifier=true kullanılmasının zorunlu kılınmamasını sağlayacak şekilde güncellendi. (b/147610424)
  • navigation-common-ktx modülü, navigation-runtime-ktx ile aynı manifest paket adını paylaşmak yerine artık benzersiz bir manifest paket adına sahip. (aosp/1141947)

Bağımlılık güncellemeleri

Sürüm 2.2.0

Sürüm 2.2.0

22 Ocak 2020

androidx.navigation:navigation-*:2.2.0 yayınlandı. Sürüm 2.2.0 bu kayıtları içerir.

2.1.0'dan sonraki önemli değişiklikler

  • NavBackStackEntry: Artık NavController.getBackStackEntry() çağırarak arka yığındaki bir hedefin veya gezinme grafiğinin kimliğini iletebilirsiniz. Döndürülen NavBackStackEntry, söz konusu hedefi başlatmak için kullanılan bağımsız değişkenlerin yanı sıra gezinme odaklı LifecycleOwner, ViewModelStoreOwner (NavController.getViewModelStoreOwner() tarafından döndürülen) ve SavedStateRegistryOwner sağlar.
  • Yaşam Döngüsü ViewModel SavedState Entegrasyonu: SavedStateViewModelFactory, artık NavController.getBackStackEntry() veya NavController.getViewModelStoreOwner() tarafından döndürülen bir ViewModelStoreOwner ile by navGraphViewModels() ya da ViewModelProvider oluşturucusu kullanılırken varsayılan fabrikadır.
  • Derin Bağlantılar için Sorgu Parametresi Desteği: Sorgu parametrelerine sahip derin bağlantılar artık yeniden sıralanan sorgu parametrelerini destekliyor. Varsayılan bir değere sahip olan veya null özellikli bağımsız değişkenler, derin bağlantıları eşleştirirken artık isteğe bağlı olarak kullanılabilir.
  • İyileştirilmiş Animasyon Desteği: NavHostFragment artık Fragment 1.2.0'dan FragmentContainerView kullanıyor. Bu sayede animasyonun z sırası sorunlarını ve Parçalara gönderilen pencere eklerini düzeltiyor.

Sürüm 2.2.0-rc04

18 Aralık 2019

androidx.navigation:navigation-*:2.2.0-rc04 yayınlandı. 2.2.0-rc04 sürümü bu kayıtları içerir.

Hata düzeltmeleri

  • navigation-ui tarafından kullanılan varsayılan şeffaflaştırma animasyonları, 1.2.0-rc04 parçasındaki düzenlenmiş şeffaflaştırma animasyonlarıyla eşleşecek şekilde ayarlandı. (b/145769814)

Sürüm 2.2.0-rc03

4 Aralık 2019

androidx.navigation:navigation-*:2.2.0-rc03 yayınlandı. 2.2.0-rc03 sürümü bu kayıtları içerir.

Hata düzeltmeleri

  • Sorgu parametreleri ve yolun son bölümü olarak bir bağımsız değişken kullanılırken, son yol bağımsız değişkeninin birden fazla karakterinin ayrıştırılmasını engelleyen derin bağlantı ayrıştırmayla ilgili bir sorun düzeltildi. (b/144554689)
  • İsteğe bağlı parametrelerin null yerine "@null" alacağı derin bağlantı ayrıştırmayla ilgili sorun düzeltildi. (b/141613546)
  • NavHostFragment, FragmentContainerView ile kullanıldığında bir yapılandırma değişikliğinden sonra grafiği doğru şekilde geri yüklüyor. (b/143752103)

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

  • Gezinme artık uygun olduğunda 2.2.0-rc03 Yaşam Döngüsü, Yaşam Döngüsü ViewModel SavedState 1.0.0-rc03, Etkinlik 1.1.0-rc03 ve 1.2.0-rc03 Parçasına bağlıdır.

Sürüm 2.2.0-rc02

7 Kasım 2019

androidx.navigation:navigation-*:2.2.0-rc02 yayınlandı. 2.2.0-rc02 sürümü bu kayıtları içerir.

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

  • Navigasyon artık androidx.lifecycle 2.2.0-rc02 uygulamasına bağlıdır.

Sürüm 2.2.0-rc01

23 Ekim 2019

androidx.navigation:navigation-*:2.2.0-rc01, 2.2.0-beta01 tarihinden bu yana herhangi bir değişiklik olmadan yayınlandı. 2.2.0-rc01 sürümü bu kayıtları içerir.

Sürüm 2.2.0-beta01

9 Ekim 2019

androidx.navigation:navigation-*:2.2.0-beta01 yayınlandı. 2.2.0-beta01 sürümü bu kayıtları içerir.

Yeni özellikler

  • NavDestination ve alt sınıfları, hata ayıklama sırasında daha yararlı bilgiler sağlamak için artık toString() politikasını geçersiz kılar. (b/141264986)

Davranış değişiklikleri

  • Artık derin bağlantılar eşleştirilirken, eşleşmenin başarısız olmasına neden olmak yerine ekstra sorgu parametreleri yoksayılıyor. (b/141482822)

Hata düzeltmeleri

  • Sorgu parametreleri de belirtilmişse derin bağlantı yolundaki bağımsız değişkenlerin yoksayılmasına neden olan sorun düzeltildi. (b/141505755)
  • Activity üzerindeki navArgs() Kotlin uzantısı artık ek bir öğe olmadığında daha iyi bir hata mesajı veriyor. (b/141408999)
  • Güvenli Aramalar oluşturulan Directions Java sınıfları artık varsayılan değerleri içeriyor. (b/141099045)
  • Güvenli Aramalar oluşturulan Args Java sınıfları artık varsayılan değerleri içeriyor. (b/140123727)
  • Toolbar kullanılırken NavigationUI artık iki üst düzey hedef arasında geçiş yaparken metin değişikliğine animasyon uygulamaz. (b/140848160)

Sürüm 2.2.0-alpha03

18 Eylül 2019

androidx.navigation:navigation-*:2.2.0-alpha03 yayınlandı. Sürüm 2.2.0-alpha03 bu kayıtları içerir.

Davranış değişiklikleri

  • setGraph çağrıldıktan sonra setViewModelStore() çağrılırsa artık IllegalStateException döndürülür. Tüm NavBackStackEntry örneklerinin ViewModel örnekleri için tutarlı bir depolama alanına sahip olmasını sağlamak amacıyla bu, ilk kurulumun bir parçası olarak daima NavHost tarafından ayarlanmalıdır. (aosp/1111821)

Hata düzeltmeleri

  • Kapsamı ViewModelStore örneğine sahip birden fazla farklı gezinme grafiğine eklenmiş ViewModel örnekleri kullanılırken oluşan ConcurrentModificationException düzeltildi. (aosp/1112257)

Sürüm 2.2.0-alpha02

5 Eylül 2019

androidx.navigation:navigation-*:2.2.0-alpha02 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • Sorgu parametreleri içeren derin bağlantılar artık yeniden sıralanan sorgu parametrelerini destekliyor. Varsayılan bir değere sahip olan veya boş atanabilen bağımsız değişkenler, derin bağlantıları eşleştirirken artık isteğe bağlı olarak kullanılabilir. (b/133273839)
  • Artık NavController.getBackStackEntry() yöntemini çağırarak bir hedefin kimliğini veya arka taraftaki yığındaki gezinme grafiğini aktarabilirsiniz. Döndürülen NavBackStackEntry, söz konusu hedefi başlatmak için kullanılan bağımsız değişkenlerin yanı sıra gezinme odaklı LifecycleOwner, ViewModelStoreOwner (NavController.getViewModelStoreOwner() tarafından döndürülen) ve SavedStateRegistryOwner sağlar. (aosp/1101691, aosp/1101710)

Hata düzeltmeleri

  • ViewPager2 öğesine NavHostFragment eklemenin IllegalArgumentException ile başarısız olması sorunu düzeltildi. (b/133640271)
  • NavInflater artık getResourceName() öğesini gereksiz yere çağırmaktan kaçınarak enflasyon süresini %40'a kadar hızlandırıyor. (b/139213740)

Sürüm 2.2.0-alpha01

7 Ağustos 2019

androidx.navigation:navigation-*:2.2.0-alpha01 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • SavedStateViewModelFactory artık by navGraphViewModels() veya NavController.getViewModelStoreOwner() tarafından döndürülen bir ViewModelStoreOwner ile ViewModelProvider oluşturucusu kullanılırken varsayılan fabrika ayarıdır. (b/135716331)

API değişiklikleri

  • Gezinme 2.1.0-rc01 bölümünde: 2.1.0-alpha02 tarihinde kullanıma sunulan, NavController tarihinde kullanımdan kaldırılan getViewModelStore() API kaldırıldı. (aosp/1091021)

Hata düzeltmeleri

  • NavHostFragment artık FragmentContainerView kullanıyor. Animasyonun z sıralaması sorunlarını ve Parçalara gönderilen pencere ek öğelerini düzeltiyor. (b/137310379)

Sürüm 2.1.0

Sürüm 2.1.0

5 Eylül 2019

androidx.navigation:navigation-*:2.1.0 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

2.0.0'dan sonraki önemli değişiklikler

  • ViewModel'leri bir gezinme grafiğine kapsama: Artık -ktx kitaplıklarını veya NavController'a eklenen getViewModelStoreOwner() API'yi kullanarak Kotlin kullanıcıları için by navGraphViewModels() özellik yetkisini kullanarak gezinme grafiği düzeyinde kapsama dahil edilen ViewModel'ler oluşturabilirsiniz. Daha fazla bilgi için Kullanıcı arayüzü ile ilgili verileri hedefler arasında paylaşma başlıklı makaleye bakın.
  • İletişim kutusu hedefleri: Artık navigate işlemi yaptığınızda DialogFragment gösterecek <dialog> hedefleri oluşturabilirsiniz. NavHostFragment, varsayılan olarak iletişim kutusu hedeflerini destekler. Daha fazla bilgi için DialogFragment'tan hedef oluşturma konusuna bakın.
  • URI ile gezinme: Artık bir Uri kullanarak, rotayı izlemek için bir hedefe eklediğiniz <deepLink> ile navigate yapabilirsiniz. Daha fazla bilgi için URI kullanarak gezinme konusuna bakın.
  • NavHostController: Özel olarak NavHost oluşturmak için kullanılan API'ler NavHostController'e taşınmıştır. Böylece, uygulamalar NavController öğelerini barındıran LifecycleOwner, OnBackPressedDispatcher ve ViewModelStore sağlayıcılarına bağlayabilir.

Sürüm 2.1.0-rc01

7 Ağustos 2019

androidx.navigation:navigation-*:2.1.0-rc01 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

API değişiklikleri

  • NavController tarihinde 2.1.0-alpha02 tarihinde kullanıma sunulan, kullanımdan kaldırılmış getViewModelStore() API kaldırıldı. (aosp/1091021)

Sürüm 2.1.0-beta02

19 Temmuz 2019

androidx.navigation:*:2.1.0-beta02 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Hata düzeltmeleri

  • 2.1.0-beta01 ayında kullanıma sunulan istenmeyen jakoko bağımlılığı kaldırıldı. (b/137782950)

Sürüm 2.1.0-beta01

17 Temmuz 2019

androidx.navigation:*:2.1.0-beta01 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • NavigationUI artık setupWithNavController() bir Toolbar veya CollapsingToolbarLayout ile kullanıldığında Yukarı düğmesinin kaldırılmasını animasyonla gösteriyor. (b/131403621)

Hata düzeltmeleri

  • findNavController() ile aynı kapsayıcıyla birden fazla NavHostFragment kullanılırken zamanlama sorunu giderildi. (b/136021571)

Sürüm 2.1.0-alpha06

2 Temmuz 2019

androidx.navigation:*:2.1.0-alpha06 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • NavHostFragment tarafından kullanılan app:navGraph özelliği navigation-runtime yapısına taşındı. XML yoluyla eklenebilen özel gezginler, Gezinme Düzenleyicisi'nin Ana Makine paneliyle entegrasyon sağlamak için bu özelliği kullanmalıdır. (b/133880955)

API değişiklikleri

  • NavController işletim sisteminde getViewModelStore() API'si kullanımdan kaldırıldı ve yerine ViewModelStoreOwner döndüren yeni getViewModelStoreOwner() yöntemi geldi. (aosp/987010)
  • <dialog> hedefleri gibi kayan pencere hedeflerinin uygulanması, şu anda tüm <dialog> hedeflerinin uyguladığı bir işaretçi arayüzüne (FloatingWindow) genelleştirildi. Üst uygulama çubuğuyla etkileşimde bulunmaya yönelik NavigationUI yöntemleri artık FloatingWindow hedeflerini yoksayıyor. (b/133600763)

Davranış değişiklikleri

  • Navigasyon artık, bir <dialog> hedefi kullandığınızda durumunu ekranda görülenlerle doğru şekilde senkronize ediyor. Sonuç olarak, Navigasyon artık iletişim kutusu olmayan veya etkinlik olmayan bir hedefe (ör. <fragment>) gittiğinizde <dialog> hedeflerini otomatik olarak gösteriyor. (b/134089818)

Hata düzeltmeleri

  • Gezinme, bir derin bağlantıyı işlerken etkinliği yeniden oluştururken oluşan animasyonu artık engelleyerek görsel yanıp sönme sorununu düzeltmektedir. (b/130362979)
  • İlk parça eklenirken bir Parça açılırken Gezinme arka yığınının senkronize olmamasına neden olan hata düzeltildi. (b/133832218)

Sürüm 2.1.0-alpha05

5 Haziran 2019

androidx.navigation:*:2.1.0-alpha05 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

API değişiklikleri

  • NavController alan adındaki ana makineyle ilgili API'ler yeniden adlandırıldı ve NavController alt sınıfına (NavHostController) taşındı. (aosp/966091)
  • NavController setHostOnBackPressedDispatcherOwner() yöntemi, NavHostController setOnBackPressedDispatcher() yöntemiyle değiştirildi ve artık bu yöntemi çağırmadan önce setLifecycleOwner() yöntemini çağırmanızı gerektiriyor. (aosp/965409)
  • NavHostController artık daha önce setHostOnBackPressedDispatcherOwner() tarafından döndürülen NavHostOnBackPressedManager sınıfının yerini alan bir enableOnBackPressed(boolean) yöntemi içeriyor. (aosp/966091)

Hata düzeltmeleri

  • URI ile gezinildikten sonra arka yığının doğru olmamasına neden olan sorun düzeltildi. (b/132509387)
  • NavController tarafından otomatik olarak işlenen derin bağlantılar artık yalnızca bir kez tetikleniyor. (b/132754763)

Sürüm 2.1.0-alpha04

16 Mayıs 2019

androidx.navigation:*:2.1.0-alpha04 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Hata düzeltmeleri

  • NavHostFragment, sistem Geri düğmesi etkinliklerine müdahale ederken app:defaultNavHost politikasını doğru şekilde uygular ve Gezinme 2.1.0-alpha03'de bir regresyonu düzeltir. b/132077777
  • DialogFragmentNavigator artık popBackStack() ve navigateUp() işlemlerini düzgün şekilde işliyor. b/132576764
  • İç içe yerleştirilmiş grafikler arasında tekrar tekrar gezinirken karşılaşılan IllegalStateException: unknown destination during restore sorunu düzeltildi. b/131733658

Sürüm 2.1.0-alpha03

7 Mayıs 2019

androidx.navigation:*:2.1.0-alpha03 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Bilinen Sorunlar

  • NavHostFragment, app:defaultNavHost="false" b/132077777 kullanmasına rağmen sistem Geri düğmesine müdahale etmeye devam ediyor

Yeni özellikler

  • Artık navigate işlemi yaptığınızda DialogFragment gösterecek <dialog> hedefleri oluşturabilirsiniz. NavHostFragment, varsayılan olarak iletişim kutusu hedeflerini destekler. b/80267254
  • navigate öğesini bir kaynak kimliği veya NavDirections örneğiyle çağırmaya ek olarak, artık doğru hedefe gitmek için bir hedefe eklediğiniz <deepLink> öğesini kullanan bir Uri üzerinden gezinebilirsiniz. b/110412864

Davranış değişiklikleri

  • NavigationUI tarafından sağlanan varsayılan animasyonlar, etkinliklerin ve parçaların varsayılan animasyon hızına uyacak şekilde 400 ms'den 220 ms'ye çıkarıldı. b/130055522

API değişiklikleri

  • NavHostFragment için createFragmentNavigator() yöntemi kullanımdan kaldırıldı ve bu yöntemin işlevi, NavHostFragment alt sınıfını oluştururken özel Gezginlerin eklenmesi için doğru giriş noktasının olduğunu daha netleştirmek amacıyla yeni onCreateNavController() yöntemine taşındı. b/122802849
  • NavDestination öğesine, belirli bir Uri öğesinin söz konusu hedef tarafından veya NavGraph durumunda, gezinme grafiğindeki herhangi bir hedef tarafından kullanılıp kullanılamayacağını kontrol etmenize olanak tanıyan bir hasDeepLink() yöntemi eklendi. b/117437718

Hata düzeltmeleri

  • Varsayılan bağımsız değişkenler artık OnDestinationChangedListener örneğe doğru şekilde aktarılıyor. b/130630686
  • NavHostFragment artık OnBackPressedDispatcher kullanarak sistem Geri etkinliklerine müdahale ediyor ve bir Parçaya geri dönüldükten sonra Parça yaşam döngüsü yöntemlerinde koşullu gezinme yaparken oluşan sorunu düzeltiyor. b/111598096
  • Güvenli Anahtarlar için app:argType belirtilmeyen bir android:defaultValue=”@null”, artık düzgün şekilde string bağımsız değişkeni olarak değerlendiriliyor. b/129629192

Sürüm 2.1.0-alpha02

3 Nisan 2019

androidx.navigation:*:2.1.0-alpha02 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • Artık Kotlin kullanıcıları için by navGraphViewModels() mülk temsilcisi aracılığıyla veya NavController öğesine eklenen getViewModelStore() API'yi kullanarak gezinme grafiği düzeyinde kapsama dahil edilen ViewModel'ler oluşturabilirsiniz. b/111614463

API değişiklikleri

  • Artık <activity> hedefine app:targetPackage ekleyerek eşleşen paket adını sınırlayabilirsiniz. Paketin kendi uygulama kimliğinizle kısıtlanması için app:targetPackage="${applicationId}" desteği sağlar. b/110975456

Hata düzeltmeleri

  • <activity> hedefleri için android:name artık enflasyon zamanında bir Sınıfa ayrıştırılmadığı için dinamik özellikler kullanılırken ClassNotFoundExceptions engelleniyor. b/124538597

Sürüm 2.1.0-alpha01

19 Mart 2019

Bu, 2.1.0 Navigasyon'un ilk alfa sürümüdür.

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

  • Navigasyon artık androidx.core:core:1.0.1 ve androidx.fragment:fragment:1.1.0-alpha05 özelliklerine bağlı. Bu sürüm, androidx.legacy:legacy-support-core-utils:1.0.0 bağımlılığını da ortadan kaldırır. b/128632612

API Değişiklikleri

  • Kaynak kimliği ve Paket ile tıklama işleyici oluşturmaya alternatif olarak yeni bir Navigation.createNavigateOnClickListener(NavDirections) yöntemi eklendi. b/127631752
  • FragmentNavigator.instantiateFragment desteği sonlandırıldı. Varsayılan uygulama, artık Parçaları göstermek için FragmentFactory kullanıyor. b/119054429

Hata Düzeltmeleri

  • Gezinme, bir hedefe eklenmiş bağımsız değişkenler olduğunda artık boş bir Bundle göndermez. Böylece, android:defaultValue="@null" kullanılırken sorun düzelir. b/128531879
  • Güvenli Aramalar artık KotlinPoet 1.1.0'a bağlı ve çok uzun paket adlarıyla ilgili bir sorunu çözüyor. b/123654948

Sürüm 2.0.0

Sürüm 2.0.0

14 Mart 2019

2.0.0 gezinme çubuğu, 2.0.0-rc02 tarihinden itibaren herhangi bir değişiklik olmadan yayınlandı.

Sürüm 2.0.0-rc02

6 Mart 2019

Gezinme 2.0.0-rc02, androidx.navigation grup kimliğiyle yeni yapılar sağlar ve bağımlılıklarını AndroidX eşdeğerleriyle değiştirir.

2.0.0-rc02'nin davranışı, Navigation 1.0.0-rc02'nin davranışıyla aynıdır ve bağımlılıklarınızı yeni bağımlılıklarla eşleşecek şekilde güncellemeniz dışında, 1.0.0-rc02 sürümünden güncellemek için kodunuzda herhangi bir değişiklik yapmanız gerekmez.

Navigasyon'un 2.X sürümlerini kullanmak için projenizin AndroidX'e taşınmış olması gerekir. Gezinme 1.0'ın kararlı sürümü, Destek Kitaplığı bağımlılıklarını kullanan son sürüm olacaktır. 1.0'dan sonraki tüm geliştirmeler AndroidX'i temel alacak ve 2.0 kararlı sürümünü temel alacaktır.

AndroidX Öncesi Bağımlılıklar

Navigasyon'un AndroidX öncesi sürümleri için aşağıdaki bağımlılıkları ekleyin:

dependencies {
    def nav_version = "1.0.0"

    implementation "android.arch.navigation:navigation-fragment:$nav_version" // For Kotlin use navigation-fragment-ktx
    implementation "android.arch.navigation:navigation-ui:$nav_version" // For Kotlin use navigation-ui-ktx
}

Güvenli bağımsız değişkenler için üst düzey build.gradle dosyanıza aşağıdaki classpath yolunu ekleyin

buildscript {
    repositories {
        google()
    }
    dependencies {
        classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0"
    }
}

Sürüm 1.0.0

Sürüm 1.0.0

14 Mart 2019

1.0.0 gezinme çubuğu, 1.0.0-rc02 tarihinden itibaren herhangi bir değişiklik olmadan yayınlandı.

Sürüm 1.0.0-rc02

26 Şubat 2019

Bu, Navigasyon'un 1.0.0 kararlı sürümü için ikinci sürüm adayıdır. Bu sürüm çok sayıda hata düzeltmesi içermektedir.

Hata Düzeltmeleri

  • Kök grafiğin b/126251695 kimliği yoksa popBackStack() değerinin yoksayılmasına neden olan sorun düzeltildi.
  • navigateUp() artık FLAG_ACTIVITY_NEW_TASK olmadan bir derin bağlantıyı işledikten sonra çağrıldığında uygulamanızın görevine geri gitmeyi düzgün şekilde işliyor b/126082008
  • ActivityNavigator.applyPopAnimationsToPendingTransition öğesinin doğru pop çıkış animasyonunun uygulanmaması sorunu giderildi b/126237567
  • Güvenli Args tarafından oluşturulan Kotlin kodu artık R sınıfıyla ilişkili paket adında in ve fun gibi Kotlin anahtar kelimelerinin dışında düzgün şekilde çıkış yapabiliyor. b/126020455

Sürüm 1.0.0-rc01

21 Şubat 2019

Bu, Navigasyon'un 1.0.0 kararlı sürümü için sürüm adayıdır. Bu sürümde bir hata düzeltmesi yer almaktadır.

Hata Düzeltmeleri

  • Parçalar ve singleTop gezinme işlemleri kullanılırken karşılaşılan bir sorun düzeltildi b/124294805

Sürüm 1.0.0-beta02

12 Şubat 2019

Bu sürüm bir dizi küçük iyileştirme ve önemli hata düzeltmesi içermektedir.

Yeni Özellikler

  • Artık reference bağımsız değişkenleri için 0 öğesini android:defaultValue olarak kullanabilirsiniz. b/124248602

Davranış değişiklikleri

  • Tam derin bağlantı eşleşmeleri artık .* içeren derin bağlantılara veya bağımsız değişken eşleşmesine göre önceliklidir. b/123969518

Hata Düzeltmeleri

  • popBackStack() ve navigateUp, arka yığındaki son hedef açılırken artık doğru şekilde false değerini döndürüyor ve 1.0.0-beta01 içinde başlatılan bir regresyonu düzeltiyor. b/123933201
  • Gezinme, kayıtlı örnek durumunun geri yüklenmesi sırasında ClassLoader özelliğini artık doğru şekilde ayarlıyor. Böylece, Navigator kayıtlı durumda veya NavDestination öğesine gönderilen bağımsız değişkenlerde özel sınıflar kullanılırken sorun yaşanmıyor. b/123893858
  • Güvenli Aramalar oluşturulan NavArgs sınıfları, kayıtlı örnek durumundan Parcelable[] bağımsız değişkeni geri yüklenirken artık kilitlenmez. b/123963545
  • Güvenli Arg'lar artık gereksiz oluşturulan Kotlin sınıflarını düzgün bir şekilde temizliyor. b/124120883

Sürüm 1.0.0-beta01

4 Şubat 2019

Bu, Navigasyon'un ilk beta sürümüdür. bundan sonra, kritik bir sorun olmadığı sürece Navigasyon API'sının bir sonraki sürüme kadar kararlı kalması beklenmektedir. Bu sürüm, bazı hata düzeltmeleri ve davranış değişiklikleri içeriyor.

Davranış değişiklikleri

  • Gezinme artık bağımsız değişken varsayılan değerlerinin çalışma zamanında ve Güvenli Anahtarlar aracılığıyla aynı şekilde ele alınmasını sağlıyor. Sonuç olarak, yalnızca app:argType="reference" içeren bağımsız değişkenlerin başka bir kaynağa (örneğin, @color/colorPrimary) varsayılan değeri olabilir. Farklı bir app:argType ile referans varsayılan değeri kullanılmaya çalışıldığında, gezinme XML dosyası ayrıştırılırken istisna oluşur. b/123551990
  • Güvenli Aramalar artık Android Gradle Plugin 3.3.0'a bağlı aosp/888413
  • Güvenli Aramalar artık Kotlin 1.3.20'ye bağlı aosp/888414

Hata Düzeltmeleri

  • Güvenli Arg'lar artık Android Gradle Eklentisi'nin tüm sürümlerindeki kitaplık ve özellik modüllerinde kullanılabilir. b/121304903
  • Tek bir popBackStack() işleminin, her defasında yalnızca tek bir hedef yerine bir hedefin tüm kopyalarını arka yığının üst kısmından kaldırmasına neden olan bir regresyon düzeltildi. b/123552990
  • FragmentNavigator durumunun NavController durumuyla senkronizasyonunun bozulmasına ve arka yığını geri yüklemeye çalışırken IllegalStateException sorununa neden olması sorunu düzeltildi.b/123803044
  • ProGuard ile kod karartma kullanılırken NavigationUI ele alınan geri okunun görünmemesine neden olan sorun düzeltildi. b/123449431
  • Safe Args tarafından oluşturulan kod artık .OuterClass$InnerClass biçimindeki statik bir iç sınıfa işaret eden app:argType kullanarak düzgün şekilde işliyor. b/123736741
  • Safe Args tarafından oluşturulan Java kodu artık genel işlemleri ve derinlemesine iç içe yerleştirilmiş hedefleri düzgün şekilde işliyor. b/123347762

Sürüm 1.0.0-alpha11

23 Ocak 2019

Bu, 1.0.0-alpha10 ürününün Güvenli Aramalar ile ilgili bir sorunu düzelten bir düzeltme sürümüdür.

Hata Düzeltmeleri

  • Güvenli Arama'ların genel işlemlerle ilişkili Yol Tarifleri sınıfını içe aktaramaması sorunu düzeltildi. b/123307342

Sürüm 1.0.0-alfa10

23 Ocak 2019

Bilinen Sorunlar

  • Güvenli Aramalar genel işlemlerle ilişkili Yol Tarifleri sınıfını içe aktaramıyor. b/123307342

Bu sürümde, zarar veren API değişiklikleri yer alıyor. Lütfen aşağıdaki Kırıcı Değişiklikler bölümüne bakın.

Yeni Özellikler

  • Kotlin kullanıcıları artık by navArgs() özelliği delegesini kullanarak Activity veya Fragment içindeki Güvenli Arg'lar tarafından oluşturulan NavArgs sınıfına geç kalmadan referans alabilirler. b/122603367
  • Safe Args artık androidx.navigation.safeargs.kotlin eklentisini uygulayarak Kotlin kodu oluşturmanıza olanak tanıyor. Kotlin kodu, önceki androidx.navigation.safeargs eklentisiyle hâlâ kullanılabilen oluşturucu kalıbına göre varsayılan bağımsız değişkenler ve sabit sınıflar kullanılarak yalnızca Kotlin modülleri için özel olarak oluşturulur. b/110263087

Davranış Değişiklikleri

  • Eşleşen derin bağlantılar, artık en fazla eşleşen bağımsız değişkene sahip derin bağlantıya dayalı olarak değerlendirilir. b/118393029
  • NavController üzerinde setGraph() çağrısı yapıldığında arka grup sıfırlanacaktır. b/111450672
  • Bilinmeyen derin bağlantılar artık IllegalStateException tetiklemez ancak yoksayılır ve iç içe yerleştirilmiş veya birden çok NavHostFragment ile ilgili sorunlar düzeltilir. b/121340440

Zarar Veren Değişiklikler

  • Pop animasyonları bir Etkinliğe uygulamak için kullanılan NavOptions.applyPopAnimationsToPendingTransition() yöntemi ActivityNavigator konumuna taşındı. b/122413117
  • Güvenli Bağımsız Değişkenler artık bağımsız değişken içermeyen eylemler için aynı sınıfların yinelenmesini önler. Oluşturulan NavDirections sınıflarında bağımsız değişken yöntemleri için dönüş türü artık NavDirections oldu. b/123233147
  • Güvenli Aramalar tarafından oluşturulan Yol Tarifi sınıflarında artık bir herkese açık kurucu mevcut değildir. Yalnızca oluşturulan statik yöntemlerle etkileşime girmeniz gerekir. b/123031660
  • Oluşturulan NavDirections sınıfındaki Güvenli Anahtarlar artık bir herkese açık kurucuya sahip değil. Yalnızca oluşturulan Yol Tarifi sınıflarındaki statik yöntemlerle oluşturulmalıdır. b/122963206
  • NavDirections' getArguments() kaynağından döndürülen Bundle artık @Nullable yerine @NonNull olarak işaretlendi. b/123243957

Hata Düzeltmeleri

  • NavDeepLinkBuilder artık benzersiz olup olmadığını belirlemek için gönderdiğiniz bağımsız değişkenleri kullanarak birden fazla eş zamanlı PendingIntent öğesini aynı hedef için düzgün şekilde işliyor. b/120042732
  • NavController, artık iç içe yerleştirilmiş NavHostFragment veya arka yığını olan başka alt Fragments kullanırken popBackStack() işlemlerini doğru şekilde yürütüyor. b/122770335
  • NavigationUI, Yukarı düğmesinin içerik açıklamasını artık doğru şekilde ayarlıyor. b/120395362
  • Güvenli Aramalar tarafından oluşturulan Yol Tarifi sınıfları, bir hedefte gerçekleşen bir işlemle aynı kimliğe sahip olan genel işlemleri artık doğru şekilde işliyor. b/122962504
  • Güvenli Aramalar oluşturulan NavDirections sınıfları, equals() doğru döndürüldüğünde artık doğru bir şekilde eşit hashCode() değerlere sahip. b/123043662
  • NavHostFragment öğesinin FragmentManager öğesinde özel FragmentTransactions işlemi yapmaya çalışırsanız FragmentNavigator artık daha iyi bir hata mesajı veriyor. Her zaman getChildFragmentManager() kullanmalısınız. b/112927148

Sürüm 1.0.0-alpha09

18 Aralık 2018

Bu sürümde, zarar veren API değişiklikleri yer alıyor. Lütfen aşağıdaki Kırıcı Değişiklikler bölümüne bakın.

android.arch.navigation:navigation-testing yapısını geliştirmeye devam etmemeyi seçtik. NavController dahili testinde faydalı olduğu kanıtlanmış olsa da doğru navigate() çağrılarının yapıldığını doğrulamak için NavController örneğiyle dalga geçme gibi alternatif test stratejileri kullanmanızı kesinlikle öneririz. Bu yaklaşım, AndroidDevSummit 2018'deki Tek Etkinlik konuşmasında ayrıntılı olarak ele alınmaktadır. Özellikle Navigasyon ile testlere ilişkin ek dokümanlar üzerinde çalışacağız.

Yeni Özellikler

  • menuCategory="secondary" içeren MenuItem öğeleri, NavigationUI yöntemleriyle birlikte kullanıldığında artık arka yığını açmaz. b/120104424
  • AppBarConfiguration artık navController.navigateUp() false döndürdüğünde çağrılacak bir yedek OnNavigateUpListener örneği ayarlamanıza olanak tanıyor. b/79993862 b/120690961

Zarar Veren Değişiklikler

  • argType="reference" ile bir <argument> kullanıldığında, Navigasyon artık referansı ayrıştırmaz, bunun yerine ham kaynak kimliğinin kendisini sağlar. b/111736515
  • onNavDestinationSelected() artık varsayılan olarak gezinme grafiğinizin başlangıç noktasına geri dönüyor. Böylece setup yöntemleriyle tutarlılık sağlıyorlar. Geri yığının patlamasını önlemek için MenuItem cihazınıza menuCategory="secondary" ekleyin. aosp/852869
  • Oluşturulan Args sınıflarının fromBundle() yöntemleri artık null özellikli Bundle yerine null olmayan Bundle alıyor aosp/845616

Hata Düzeltmeleri

  • Bağımsız değişkenler artık derin bağlantılardan her zaman dize olarak değil, doğru argType ifadesiyle düzgün bir şekilde ayrıştırılıyor b/110273284
  • Navigasyon artık herkese açık kaynaklarını doğru şekilde dışa aktarıyor b/121059552
  • Safe Args artık Android Gradle Plugin 3.4 Canary 4 ve sonraki sürümleriyle uyumlu b/119662045

Sürüm 1.0.0-alpha08

6 Aralık 2018

Bu sürümde, zarar veren API değişiklikleri yer alıyor. Lütfen aşağıdaki Kırıcı Değişiklikler bölümüne bakın.

Yeni Özellikler

  • Hedef etiketleri, NavigationUI yöntemleriyle kullanıldığında artık b/80267266 doğru bağımsız değişkeniyle android:label içindeki {argName} örneği otomatik olarak değiştirecek
  • Navigasyon artık Destek Kitaplığı 28.0.0'ı kullanıyor b/120293333

Zarar Veren Değişiklikler

  • OnNavigatedListener, OnDestinationChangedListener b/118670572 olarak yeniden adlandırıldı
  • OnDestinationChangedListener, artık aosp/837142 bağımsız değişkenlerinin Bundle kadarını da iletir
  • app:clearTask ve app:launchDocument özellikleri ile bunlarla ilişkili yöntemler kaldırıldı. Arka yığınınızdaki tüm hedefleri kaldırmak için grafiğinizin köküyle birlikte app:popUpTo kodunu kullanın. b/119628354
  • ActivityNavigator.Extras artık Builder kalıbı kullanıyor ve Intent.FLAG_ACTIVITY_ işareti ayarlama özelliğini aosp/828140 ekliyor.
  • NavController.onHandleDeepLink, handleDeepLink aosp/836063 olarak yeniden adlandırıldı
  • NavOptions, NavInflater, NavDeepLinkBuilder ve AppBarConfiguration gibi alt sınıflandırmaya yönelik olmayan birçok sınıf ve yöntem final aosp/835681 hale getirilmiştir.
  • Kullanımdan kaldırılan NavHostFragment.setGraph() yöntemi kaldırıldı aosp/835684
  • Kullanımdan kaldırılan NavigationUI.navigateUp(DrawerLayout, NavController) yöntemi kaldırıldı. aosp/835684
  • Parça oluşturma FragmentNavigator konumuna taşındı. Bu sayede, FragmentFactory öğesine Parça oluşturma yetkisi vermek daha kolay hale geldi. b/119054429
  • NavGraphNavigator oluşturucu artık Context aosp/835340 kabul etmiyor
  • NavigatorProvider artık bir arayüz yerine bir sınıftır. getNavigatorProvider() tarafından döndürülen NavigatorProvider işlevinde değişiklik yapılmadı. aosp/830660
  • NavDestination.navigate() kaldırıldı. Bunun yerine Navigator üzerinden navigate() numaralı telefonu arayın. aosp/830663
  • Navigator öğesinin önemli ölçüde yeniden düzenlenmesi, OnNavigatorNavigatedListener ihtiyacını ortadan kaldırdı ve bunun yerine navigate öğesinin, gidilen NavDestination öğesini döndürmesini sağladı.
  • Navigator örnekleri artık NavController cihazına pop etkinlik gönderemez. Geri düğmesine basılmasını engellemek ve navController.popBackStack() numaralı telefonu aramak için OnBackPressedCallback kullanmayı düşünün. aosp/833716

Hata Düzeltmeleri

  • popUpTo artık hedef, <navigation> öğesi olduğunda tutarlı bir şekilde çalışıyor b/116831650
  • İç içe yerleştirilmiş grafikler kullanıldığında IllegalArgumentException hatasına yol açan çeşitli hatalar düzeltildi b/118713731 b/113611083 b/113346925 b/113305559
  • <activity> hedeflerinin dataPattern özelliği artık toString() b/120161365 çağrısı yaparak Dize olmayan bağımsız değişkenlerdeki bağımsız değişkenleri doldurur

Güvenli Aramalar

  • Güvenli Arg'lar, Enum değerleri dahil olmak üzere Serialize edilebilir nesneleri destekler. Sıralama türleri sınıf adı olmadan enum sabit değerini kullanarak varsayılan bir değer ayarlayabilir (ör. app:defaultValue="READ") b/111316353
  • Güvenli Aramalar, desteklenen tüm türlerdeki dizileri destekler b/111487504
  • Güvenli Arg'lar artık kaynak dizinlerinin alt klasörlerini yok sayıyor b/117893516
  • Güvenli Aramalar, uygun durumlarda @Override ek açıklamaları ekler b/117145301

Sürüm 1.0.0-alpha07

29 Ekim 2018

Yeni Özellikler

  • Yeni bir AppBarConfiguration sınıfı, hangi hedeflerin üst düzey hedef olarak kabul edildiğini özelleştirmenize olanak tanır. Ayrıntılar için güncellenen belgelere göz atın. b/117333663
  • Artık grafiğinizin başlangıç hedefine bağımsız değişkenler aktarabilirsiniz b/110300470
  • Derin bağlantılar artık nokta, kısa çizgi ve artı işareti içeren özel şemaları destekliyor. b/112806402

Zarar Veren Değişiklikler

  • navigation-testing-ktx modülü, navigation-testing artifact içine eklendi ve artık yayınlanmayacak.
  • navigation-testing yapısı artık Kotlin standart kitaplığına bağımlıdır. API, Kotlin kurallarıyla daha tutarlı olacak şekilde değiştirilmiştir ancak Java'da yazılan testler için kullanmaya devam edebilirsiniz.
  • Meta veri manifestinde kayıtlı gezinme grafikleri artık desteklenmemektedir. b/118355937
  • İşlemler artık <activity> hedeflerine eklenemez. aosp/785539

Hata Düzeltmeleri

  • Derin bağlantılar artık sorgu parametrelerini doğru şekilde ayrıştırıyor. b/110057514
  • Etkinlik hedefleri artık tüm giriş ve çıkış animasyonlarını doğru bir şekilde uyguluyor. b/117145284
  • Özel gezginler kullanılırken yapılandırma değişikliklerinden sonra ortaya çıkan kilitlenme düzeltildi. b/110763345

Güvenli Aramalar

  • Güvenli bağımsız değişkenlerin artık Android Gradle Eklentisi 3.2.1'e sabit bir bağımlılığı vardır. b/113167627
  • Artık iç sınıflar için yol tarifi oluşturulabilir. b/117407555
  • <include> grafiğine Yol Tarifi oluşturmayla ilgili sorun giderildi. b/116542123

Sürüm 1.0.0-alpha06

20 Eylül 2018

Yeni Özellikler

API Değişiklikleri

  • Kisursuz Değişiklik: Gezgin navigate() yöntemi artık bir Navigator.Extras parametresi alıyor.
  • NavController'ın getGraph() yöntemi artık NonNull b/112243286 oldu

Hata Düzeltmeleri

  • NavigationUI.setupWithNavController(), b/111961977 tek tek hedeflerden görüntülemeyle kullanıldığında görüntüleme sızdırmaz.
  • onSaveState() adlı gezgin artık yalnızca bir kez b/112627079 olarak adlandırılıyor

Güvenli Aramalar

  • b/79871405 Navigasyon hedefi Yol Tarifi sınıfları, mevcut olması halinde artık üstlerinin Yol Tarifi sınıfının kapsamını genişletiyor
  • Directions ve Args sınıfları artık yararlı bir toString() uygulamasına sahip b/111843389

Sürüm 1.0.0-alpha05

10 Ağustos 2018

Hata Düzeltmeleri

  • Hatalı arka grup davranışına neden olan hatayı düzeltin. b/111907708
  • Oluşturulan Arg sınıflarının equals() tanesindeki bir hata düzeltildi. b/111450897
  • Güvenli Aramalar'daki bir derleme hatasını düzeltin. b/109409713
  • Kaynak tanımlayıcılardan Java adlarına dönüşümü düzeltin b/111602491
  • Safe Args eklentisinde null değer alabilmeyle ilgili hata mesajları düzeltildi.
  • Eksik null değer ek açıklamaları ekleyin.

Sürüm 1.0.0-alpha04

19 Temmuz 2018

1.0.0-alpha04 gezinmesi ve ilişkili Safe Args gradle eklentisinde çok sayıda API değişikliği, davranış değişikliği ve hata düzeltmesi bulunur.

API / Davranış Değişiklikleri

  • NavHostFragment, geçerli Fragment öğesini her zaman birincil gezinme parçası olarak ayarlar ve böylece dış NavController b/111345778 açılmadan önce alt parça yöneticilerinin başlatılmasını sağlar.

Güvenli Aramalar

  • Kusursuz Değişiklik: app:type, ConstraintLayout 2.0.0-alpha1 b/111110548 gibi diğer kitaplıklarla çakışmaları önlemek için app:argType olarak değiştirildi
  • Güvenli Aramalar'dan gelen hata mesajları artık b/111534438 tıklanabilir
  • Args sınıfları artık NonNull özelliklerinin aslında boş b/111451769 olmadığını doğruluyor
  • NavDirections ve Args tarafından oluşturulan b/111455455 b/111455456 sınıflarına NonNull ek açıklamaları eklendi

Hata Düzeltmeleri

  • Parça hedefine derin bağlantı kurulduktan sonra sistem geri düğmesiyle ilgili bir sorun düzeltildi b/111515685

Sürüm 1.0.0-alpha03

12 Temmuz 2018

1.0.0-alpha03 gezinmesi ve ilişkili Safe Args gradle eklentisinde çok sayıda API değişikliği, davranış değişikliği ve hata düzeltmesi bulunur.

API / Davranış Değişiklikleri

  • Araç Çubuğu için NavigationUI.setupWithNavController yöntemi eklendi b/109868820
  • CollapsingToolbarLayout için NavigationUI.setupWithNavController yöntemi eklendi b/110887183
  • popBackStack() artık geri yığın boş olduğunda veya belirtilen hedef kimliği arka yığında olmadığında b/110893637 yanlış değerini döndürüyor
  • FragmentNavigator, FragmentManager durumunu kaydettikten sonra artık gezinme işlemlerini yok sayıyor ve "OnSaveInstanceState sonrası bu işlemi gerçekleştiremiyor" istisnalarını atlıyor b/110987825

Güvenli Aramalar

  • Kırıcı Değişiklik: İşlem ve bağımsız değişken adlarındaki alfasayısal olmayan karakterler, ilgili NavDirections yöntem adlarında büyük/küçük harf kullanımıyla değiştirilecek
    • Örneğin DemoController.index, setDemoControllerIndex b/79995048 olur.
    • Örneğin action_show_settings, actionShowSettings b/79642240 olur.
  • Hatalı Değişiklik: Bağımsız değişkenler artık varsayılan olarak boş olmayan kabul edilmektedir. Dize ve ayrıştırılabilir bağımsız değişkenlerde boş değerlere izin vermek için app:nullable="true" b/79642307 öğesini ekleyin
  • Artık app:type="long" öğesini defaultValues değerleriyle "123L" b/79563966 biçiminde kullanabilirsiniz.
  • app:type için tam nitelikli bir sınıf adı kullanılarak ayrıştırılabilir bağımsız değişkenler artık desteklenmektedir. Yalnızca varsayılan değer desteklenir: "@null" b/79563966
  • Args sınıfları artık equals() ve hashCode() b/79642246 değerlerini uyguluyor
  • Safe Args eklentisi artık b/80036553 kütüphane projelerine uygulanabilir
  • Safe Args eklentisi artık b/110011752 adlı özellik projelerine uygulanabilir

Hata Düzeltmeleri

  • Parça yaşam döngüsü yöntemleri sırasında gezinirken karşılaşılan sorunlar düzeltildi b/109916080
  • İç içe yerleştirilmiş grafiklerde birden fazla kez gezinirken karşılaşılan sorunlar düzeltildi b/110178671
  • b/109909461 grafiğindeki ilk hedefle setPopUpTo kullanılırken karşılaşılan sorunlar düzeltildi
  • Tüm app:defaultValue değerlerinin b/110710788 Dizesi olarak iletilmesiyle ilgili sorun düzeltildi.
  • Android Gradle Eklentisi 3.2 Beta 01 ile birlikte sunulan aapt2, artık b/79874119 Navigasyon XML dosyalarındaki her android:name özelliği için saklama kuralları ekliyor.
  • Varsayılan FragmentNavigator b/110900142 değiştirilirken bellek sızıntısı düzeltildi.

Sürüm 1.0.0-alpha02

7 Haziran 2018

Davranış Değişiklikleri

  • FragmentNavigator artık setReorderingAllowed(true) kullanıyor. b/109826220

  • Gezinme artık derin bağlantı URL'lerinden ayrıştırılan bağımsız değişkenlerin URLDecode'unu açıyor. b/79982454

Hata Düzeltmeleri

  • Parça yaşam döngüsü yöntemlerinden gezinme çağrılırken bir IllegalStateException sorunu düzeltildi. b/79632233

  • Gezinme özelliği, animasyonlar kullanılırken titremeyi düzeltmek için artık Destek Kitaplığı 27.1.1'i kullanmaktadır. b/80160903

  • Alt parça olarak defaultNavHost="true" kullanılırken IllegalArgumentException düzeltmesi. b/79656847

  • NavDeepLinkBuilder kullanılırken bir StackOverflowError düzeltildi. b/109653065

  • İç içe yerleştirilmiş grafiğe geri dönülürken karşılaşılan IllegalArgumentException sorunu düzeltildi. b/80453447

  • launchSingleTop kullanılırken çakışan Parçalarla ilgili sorun düzeltildi. b/79407969

  • Gezinme artık iç içe yerleştirilmiş grafikler için doğru sentetik arka yığını oluşturmaktadır. b/79734195

  • NavigationUI artık iç içe yerleştirilmiş bir grafiği MenuItem olarak kullanırken doğru öğeyi vurgulayacak. b/109675998

API Değişiklikleri

  • NavOptions kapsamındaki işlemler ve ilişkili API için clearTask özelliği kullanımdan kaldırıldı. b/80338878

  • NavOptions kapsamındaki işlemler ve ilişkili API için launchDocument özelliği kullanımdan kaldırıldı. b/109806636

Sürüm 1.0.0-alpha01

8 Mayıs 2018

Gezinme, uygulama içi gezinme oluşturmak için bir çerçeve sağlar. Bu ilk sürüm: 1.0.0-alpha01.