Navigasyon

Navigasyon, sürecin ‘varış noktaları’ arasında gezinme sağlayan bir Android uygulamasında hedeflerin Parçalar, Etkinlikler veya başka bileşenlerde de kullanılabilir.
Son Güncelleme Kararlı Sürüm Yayın Adayı Beta Sürümü Alfa Sürümü
24 Temmuz 2024 2.7.7 - 2.8.0-beta06 -

Bağımlılıkları bildirme

Gezinme'ye bağımlılık eklemek için şuraya Google Maven deposunu eklemeniz gerekir: belirler. Google'ın Maven deposunu okuyun konulu videomuzu izleyin.

build.gradle dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin. uygulamanız veya modülünüz:

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

Güvenli Aramalar'ı projenize eklemek için üst düzey build.gradle dosyanıza aşağıdaki classpath öğesini ekleyin:

Modern

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")
    }
}

Ayrıca, mevcut iki eklentiden birini uygulamanız gerekir.

Java'ya veya karma Java ve Kotlin modüllerine uygun Java dili kodu oluşturmak için şu satırı uygulamanızın veya modülünüzün build.gradle dosyasına ekleyin:

Modern

plugins {
  id 'androidx.navigation.safeargs'
}

Kotlin

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

Alternatif olarak, yalnızca Kotlin modüllerine uygun Kotlin kodu oluşturmak için şunu ekleyin:

Modern

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

Kotlin

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

AndroidX'e Taşıma uyarınca gradle.properties dosyanızda android.useAndroidX=true bulunmalıdır.

Kotlin uzantılarını kullanma hakkında bilgi için ktx dokümanlarına bakın.

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

Geri bildirim

Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.

Yeni sayı oluştur

Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.

Sürüm 2.8

Sürüm 2.8.0-beta06

24 Temmuz 2024

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

Hata Düzeltmeleri

  • WrongStartDestinationType lint kontrollerinin, iletilen sınıf türünde Tamamlayıcı nesneleri kontrol edememesine neden olan sorun düzeltildi. (I92b09)

Sürüm 2.8.0-beta05

10 Temmuz 2024

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

Hata Düzeltmeleri

  • İç içe yerleştirilmiş NavGraphs, aynı startDestination rotasını paylaştığında singleTop gezinme kilitlenmesi düzeltildi. (I17b94, b/294408596)

Sürüm 2.8.0-beta04

26 Haziran 2024

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

Hata Düzeltmeleri

  • Gezinme artık yol bağımsız değişkenlerinde boş dizelerle gezinmeyi destekliyor. (Ic5dbd, b/339481310)
  • Şu anda desteklenmeyen bir özellik olduğunu netleştirmek için @Serializable(with =...) aracılığıyla doğrudan sınıf alanlarında tanımlanan özel serileştiricilerle ilgili hata mesajını iyileştirin. (I052b0, b/341319151)
  • SavedStateHandleFactory test API'si artık Android dışı testlerde kullanılabilir ancak Robolectric'in Bundle ile bağımsız değişken ayrıştırmayı desteklemesi gerekir. (I76cdc, b/340966212)
  • Compose'da Tür-Güvenli Gezinme kullanılırken uygulama işlemi devam ettirildiğinde geri yükleme durumunda yaşanan kilitlenme düzeltildi. (Ia8f38, b/341801005)
  • Gezinme Oluşturma'da, Tahmine Dayalı Geri Hareketi iptal edildikten sonra kullanıcının geri döndüğü NavBackStackEntry öğesinin hiçbir zaman RESUMED Yaşam Döngüsü Durumuna geri dönmediği bir sorun düzeltildi. Bu aynı zamanda, geri gelen hedefin bir fırlatma işleminden sonra yerine oturması yerine doğru bir şekilde yeniden etkinleşmesini sağlar. (I97a0c, b/346608857)
  • Gezinme Yazma Sihirbazı ile Tahmine dayalı geri özelliği kullanılırken, açılan hedef artık uygun z sırasına sahip olur ve gelen hedef üzerinde doğru bir şekilde animasyon gösterir. (I2077b, b/345993681)

Sürüm 2.8.0-beta03

12 Haziran 2024

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

API Değişiklikleri

  • CollectionNavType, yeni bir soyut emptyCollection() yöntemine sahip. Bağımsız değişken olarak iletilen boş bir koleksiyonu işlemek için bunu geçersiz kılın. (Ie4d84, b/341723133)

Hata Düzeltmeleri

  • Nihai çıkışların Uri kodlamalı olması gerektiğini vurgulamak için NavType.serializeAsValue ve serializeAsValues ile ilgili dokümanlar eklendi. (Ida6bd, b/344943214)
  • Boş CollectionNavType bağımsız değişkeniyle toRoute<T> çağrılırken oluşan kilitlenme düzeltildi. Boş bir CollectionNavType değeriyle gezinirken çıkış bağımsız değişkeni, Serileştirilebilir sınıfınızda bildirilen varsayılan değer veya varsayılan değer yoksa döndürülen değer emptyCollection() olur. (I84158, Id630f, b/342672856)

Sürüm 2.8.0-beta02

29 Mayıs 2024

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

Hata Düzeltmeleri

  • Boş değer atanabilen özel NavType ile NavBackStackEntry.toRoute kullanılırken ClassCastException kilitlenmesi düzeltildi. (I1c29b, b/342239473)
  • Geçerli hedeften kimlik aracılığıyla erişilemeyen bir geri yığın girişi geri yüklenmeye çalışılırken ortaya çıkan Gezinme geri yığını durumu geri yükleme sorunları düzeltildi. Rotalar kimliklerle desteklendiğinden rotalarla oluşturulan hedefler de bu sorundan etkilendi. Bu işlem, aynı temel soruna sahip clearBackStack() çağrısından kaynaklanan kilitlenmeyi de düzeltir. (I423c3, b/339908057)

Sürüm 2.8.0-beta01

14 Mayıs 2024

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

API Değişiklikleri

  • SavedStateHandle.toRoute(), özel bağımsız değişken türleri için artık typeMap parametresini alıyor. (Ie39fb, b/339026523)
  • Kotlin seri haline getirilebilir bir nesneden SavedStateHandle oluşturmak için navigation-testing işlevine test API'si eklendi. (Id4867, b/339080702)

Hata Düzeltmeleri

  • Navigasyon Kotlin DSL işlevleri için eksik parametre dokümanları eklendi. (I26a36)

Sürüm 2.8.0-alpha08

1 Mayıs 2024

androidx.navigation:navigation-*:2.8.0-alpha08 yayınlandı. Sürüm 2.8.0-alpha08 bu kaydetmeleri içerir.

Gezinme Oluşturmada Güvenli Bağımsız Değişkenler

  • Kotlin serileştirmesine dayalı olarak Gezinme Yazma ve Gezinme Kotlin DSL kullanıcıları için zaman türü güvenliğini derlemeyi destekleme çalışmaları tamamlandı ve daha önce deneysel API'ler artık kararlı durumda.

Bu işlev, gezinme grafiğinizde tür için güvenli nesneler ve veri sınıfları aracılığıyla varış noktaları tanımlamanıza olanak tanımak için Kotlin Serileştirme'yi kullanır:

  // Define a home destination that doesn't take any arguments
  @Serializable
  object Home

  // Define a profile destination that takes an ID
  @Serializable
  data class Profile(val id: String)

  // Now define your NavHost using type safe objects
  NavHost(navController, startDestination = Home) {
      composable<Home> {
          HomeScreen(onNavigateToProfile = { id ->
              navController.navigate(Profile(id))
          })
      }
      composable<Profile> { backStackEntry ->
          val profile: Profile = backStackEntry.toRoute()
          ProfileScreen(profile)
      }
  }

Daha fazla bilgi için Gezinme Yazma Sihirbazı Tür Güvenliği blog yayınına bakın.

Yeni Özellikler

  • navigation-fragment-compose yapısı artık ComposableFragment içinde yerel olarak composable yöntemlerine uygun bir LocalFragment kompozisyonu sağlıyor. (If35e5)
  • NavType artık Int, String, Boole, Kayan ve Uzun Listeleri için yerleşik desteğe sahiptir. (I4b6dd, Ia914c, b/188693139)

Sürüm 2.8.0-alpha07

17 Nisan 2024

androidx.navigation:navigation-*:2.8.0-alpha07 yayınlandı. Sürüm 2.8.0-alpha07 bu kaydetmeleri içerir.

Yeni Özellikler

  • Gezinme XML dosyalarınıza composable hedefleri eklemenize olanak tanıyan, NavHostFragment yerine ComposableNavHostFragment alternatifi içeren yeni bir navigation-fragment-compose yapısı ekler. Her composable hedefi, üst düzey olarak ifade edilmelidir. Tam nitelikli adı her bir hedefte android:name özelliği olarak kullanılan @Composable bağımsız değişkeni yoktur. Bu hedeflerden birine gidildiğinde, composable içeriği görüntülemek için bir kapsayıcı parça oluşturulur. (I0ef2e, b/265480755)

    // In HomeScreen.kt
    @Composable
    fun HomeScreen() {
      // Your Composable content here
    }
    
    // In your navigation.xml
    <composable
      android:id="@+id/home_screen"
      android:name="com.example.HomeScreenKt\$HomeScreen" />
    

API Değişiklikleri

  • Kotlin Serileştirme'ye dayalı bir yaklaşım kullanarak Gezinme Oluşturma'da Güvenli Bağımsız Değişkenler desteği (devamı). Bu API'ler tamamlanmadı ve ExperimentalSafeArgsApi ek açıklamasıyla işaretlenmiş. Gelecekteki bir sürümde API yüzeyinin tamamı tamamlandığında bu ek açıklama kaldırılacaktır. (Iefd95, I409c8,

Sürüm 2.8.0-alpha06

3 Nisan 2024

androidx.navigation:navigation-*:2.8.0-alpha06 yayınlandı. Sürüm 2.8.0-alpha06 bu kaydetmeleri içerir.

API Değişiklikleri

  • Kotlin serileştirmesine dayalı bir yaklaşım kullanarak Navigasyon Yazma Sihirbazı'nda Güvenli Bağımsız Değişkenler için destek başladı. Bu API'ler tamamlanmadı ve ExperimentalSafeArgsApi ek açıklamasıyla işaretlenmiş. Gelecekteki bir sürümde API yüzeyinin tamamı tamamlandığında bu ek açıklama kaldırılacaktır.

Hata Düzeltmeleri

  • NavHost, varsayılan contentHizalama bağımsız değişkeni olarak Alignment.TopStart kullanıyor. Bu işlem onu AnimatedContent için varsayılan ile aynı hizaya getirir ve merkez geçişten kaynaklanan bazı beklenmedik ölçek örneklerini düzeltir. (I09e72, b/330111602)
  • Gezinme Oluşturulma'yı kullanırken tahmine dayalı geri hareketini kaydırdığınızda NavHost artık özel geçişi hemen tamamlamak yerine doğru şekilde tamamlayacak. (I99017, b/327292110)

Sürüm 2.8.0-alpha05

20 Mart 2024

androidx.navigation:navigation-*:2.8.0-alpha05 yayınlandı. Sürüm 2.8.0-alpha05 bu kaydetmeleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Liste, dizi, harita gibi koleksiyon tabanlı 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ürden iki değerin birbirine eşit olup olmadığını belirleyen yeni bir açık valueEquals API'si sunuyor. (I6cb97, b/327229511)

Hata Düzeltmeleri

  • Derin bağlantılardaki sorgu parametreleri, artık dize tabanlı NavTypes için geçerli değer olarak bağımsız değişken adının çevresinde küme ayraçları biçimindeki değerlere (ör. {argName}) izin veriyor. Bu değişiklik, söz konusu değerin tüm türler için geçersiz olarak kabul edilmesine (veya değer olmamasına) yol açan 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 doldurulan rotaları düzgün bir şekilde eşleştirebiliyor. (Iea805, b/327229511)

Sürüm 2.8.0-alpha04

6 Mart 2024

androidx.navigation:navigation-*:2.8.0-alpha04 yayınlandı. Sürüm 2.8.0-alpha04 bu kaydetmeleri içerir.

Yeni Özellikler

  • Artık Gezinme Oluşturma'da geçişleriniz için SizeTranform değerini, bunları composable ve/veya navigation işlevleri için başlatmanın bir parçası olarak tanımlayarak belirtebilirsiniz. (I91062, b/296912651)

Hata Düzeltmeleri

  • Sistem Geri Dönme hareketi olmadan sistem Geri kullanılırken, Oluştur Gezinme'deki NavHost ürününün, geçişi düzgün bir şekilde gösterememesine neden olan sorun düzeltildi. (Iceeae, 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 kaydetmeleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • İlişkili girişe ait ViewModel, kaydedilen durumun bir parçası olmadığı için Navigasyon'da, NavGraph ViewModellerinin ç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 kaydetmeleri içerir.

Yeni Özellikler

  • Gezinme Yazma Sihirbazı, artık oluşturma animasyonunun yeni SeekableTransitionState API'leri aracılığıyla Tahmini uygulama içi geri desteği sağlıyor. Bu, işlemi tamamlanan hareketle yapmaya veya iptal etmeye karar vermeden önce, özel Geçişinizde ö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ı. Sürüm 2.8.0-alpha01 bu kaydetmeleri 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üklenebileceğ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ılırken Dize olmayan bağımsız değişkenlerin düzgün şekilde gösterilmemesine neden olan sorun düzeltildi. (#636, b/316676794)

Bağımlılık Güncellemesi

  • Oluşturma bölümünde gezinme simgesi artık Oluşturma 1.7.0-alpha01 işlevinin beklenmedik ölçek animasyonuna neden olabilecek bir sorunu düzeltmesine bağlı. (b/297258205)

Harici Katkı

  • Uygulama çubuklarının başlığını doldurmak üzere NavigationUI yardımcılarını kullanırken Dize dışı bağımsız değişkenlerle ilgili 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ı. Sürüm 2.7.7 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Gezinme 2.8.0-alpha01'dan geri bağlanmış: Tek bir NavBackStackEntry üzerinde birden fazla saveState() çağrısının birden fazla durumun kaydedilmesine neden olduğu ancak yalnızca ilk kaydedilen durumun geri yüklenebileceği BackStackState sızıntısı düzeltildi. (I598b0, b/309559751)
  • Gezinme 2.8.0-alpha01'den geri bağlanmış: Uygulama çubuklarının başlığını doldurmak için NavigationUI yardımcıları kullanılırken Dize olmayan bağımsız değişkenlerin düzgün şekilde gösterilmemesine neden olan sorun düzeltildi. (#636, b/316676794)

Harici Katkı

  • Uygulama çubuklarının başlığını doldurmak üzere NavigationUI yardımcılarını kullanırken Dize dışı bağımsız değişkenlerle ilgili 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • NavGraph equals() işlevi artık yalnızca çağıran grafik yerine diğer grafiğin düğümlerini doğru şekilde dikkate alıyor. Böylece, farklı kimliklere sahip düğümleri olan grafikler artık eşit kabul edilmez (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 kaydetmeleri içerir.

Performans iyileştirmeleri

  • İki grafiğin karşılaştırılmasında performans (hem zaman hem de ayırma sayısı açısından) büyük ölçüde arttı. Bu, yeni grafiği mevcut grafikle dahili olarak karşılaştıran setGraph gibi çağrıların çok daha hızlı olduğu ve daha az atlanan karelere neden olduğu anlamına gelir. Bu gelişmeyi sağlayan kapsamlı analiz için Michał Z'ye teşekkür ederiz. (I6ad62)
  • NavHost artık güncellenmiş durumu okumak için ikinci geçişi beklemek zorunda kalmadan, ilk beste kartındaki başlangıç hedefini oluşturur. (I439a7, b/304852206)

Hata Düzeltmeleri

  • setGraph öğesini yalnızca grafiğinizde iki hedefi bağlayan bir işlem içeren bir hedef olduğunda aynı grafikle birden fazla kez çağırdığınızda arka yığınınızın açılmasına neden olan sorun düzeltildi. (Ieaed7)
  • Hızlıca arka arkaya gidilen ve kapatılan iletişim kutuları NavController.visibleEntries listesine sızdırılmaz. (I67586, b/287969970)
  • Bir giriş ve ardından yapılandırma değişikliği uygulandığında, saveState yanlış değerine ayarlanırsa girişin ViewModel öğesi düzgün şekilde silinir. (Idf242, b/298164648)
  • Bir yapılandırma değişikliğinden önce arka yığın tamamen boşsa NavController ürününün aynı derin bağlantıyı bir defadan fazla işleyebilmesi veya gelen Intent'in FLAG_ACTIVITY_NEW_TASK işareti ayarlandığı durumlarda setGraph çağrısına yol açan sorun düzeltildi. (I73c7f)

Bağımlılık Güncellemeleri

  • Parçalarla gezinme artık 1.6.2 Parçası'na bağlı olarak, clearBackStack çağrılırken iç içe yerleştirilmiş parçaların ViewModel örneklerinin temizlenmesine neden olan bir 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 kaydetmeleri içerir.

Yeni Özellikler

  • popUpTo, tam olarak bu bağımsız değişkenleri kullanan belirli bir girişe, popBackStack ürününde bulunan destekle eşleşen rotalarda bağımsız değişkenler içeren rotaları kullanma desteği eklendi. (I731f4, b/299255572)

Hata Düzeltmeleri

  • popUpTo ile başka bir navigasyonla navigasyonu kesintiye uğrattığınızda FragmentNavigator kilitlenmesine neden olacak sorun düzeltildi. (I3c848, b/301887045)
  • Sistemin geri basmasının, currentDestination öğesinin görüntülenen Parça ile eşleşecek şekilde doğru şekilde güncellenmemesine neden olduğu sorun düzeltildi. (Id0d6c, b/289877514)
  • Üst kısmındaki iletişim kutusu kapatıldığında DialogFragment yaşam döngüsü artık düzgün bir şekilde RESUMED durumuna taşınacak. (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ı. Sürüm 2.7.3 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • visibleEntries listesinde yanlış girişler içermesine neden olan Parçalarla Navigasyon sorunu düzeltildi. (I5caa9, b/288520638)
  • Kayan Pencere hedefinin (ör.Dialogs, Bottomsheets vb.) hiçbir zaman RESUMED yaşam döngüsü geri çağırması almamasına neden olan bir 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Navigasyon artık Yaşam Döngüsü 2.6.2'ne bağlıdır. rememberSaveable ile Gezinme Oluşturma Aracı'nın NavHost arasındaki etkileşimi düzeltilir. Bu etkileşim, rememberSaveable durumunun ve sahip olduğu ViewModel SavedStateHandle örneklerinin işlem iptali ve yeniden oluşturma işleminden sonra düzgün şekilde geri yüklenmesine neden olur. (b/298059596, b/289436035)
  • Gezinme Oluşturma'da aynı anda birden fazla iletişim kutusu gösterilirken ortaya çıkan, kısmen anlaşılmaz olan iletişim kutularının (ör. en üstteki iletişim kutusu değil) STARTED yerine CREATED Yaşam Döngüsü durumunda olması sorunu düzeltildi. (aosp/2728520, b/289257213)
  • Gezinme Oluşturma'da aynı anda birden fazla iletişim kutusu gösterilirken ortaya çıkan sorun düzeltildi. Bu sorun, en üstteki iletişim kutusunun kapatılmasının, RESUMED öğesine doğru bir şekilde taşınması yerine, en üstteki yeni iletişim kutusunun STARTED Yaşam Döngüsü durumunda kalmasına neden oluyordu. (aosp/2629401, b/286371387)
  • Gezinme Güvenli Bağımsız Değişkenler, görev gerçekten yürütülmüyorsa artık görevini hızlı bir şekilde somutlaştırmamaktadır. (I0e385, b/260322841)

Bağımlılık Güncellemesi

  • Oluşturma menüsünde artık Compose 1.5.1 sürümü kullanılıyor.

Sürüm 2.7.1

Sürüm 2.7.1

23 Ağustos 2023

androidx.navigation:navigation-*:2.7.1 yayınlandı. Sürüm 2.7.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Oluşturma ile Gezinme'de, Scaffold kullanılırken Lifecycle.State.DESTROYED ViewModel özelliğine erişmeye çalışırken hata alınmasına neden olan sorun düzeltildi. (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 kaydetmeleri içerir.

2.6.0'dan bu yana önemli değişiklikler

Refakatçiden Animasyonlar

AnimatedContent kararlı olduğu için kodu Emperist Gezinme Animasyonu'ndan, Gezinme Oluşturma Animasyonu'na geri taşıyabildik.

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

Refakatçi Gezinme Animasyonu'nda başka değişiklik yapılmayacak. Yakında bu özelliği ve Navigation Compose'a geri dönmeyle ilgili talimatlar da resmi olarak kullanımdan kaldırılacak. Ancak en son Eşlik eden alfa sürümünü (0.31.2-alpha) kullanıyorsanız başka bir API değişikliği yapmanıza gerek kalmadan bu, taşıma rehberinin tam tersi olacaktır. (b/197140101)

Hata Düzeltmeleri

  • Gezinme Compose'daki NavHost, Etkinlik DURDURDURDU ve DEVAM ETTildikten sonra bile 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 konumundan itibaren 1.5.0 Compose'a 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • NavHost öğesinin bir parçası olarak oluşturulan EnterTransition ve ExitTransition lambda'ların, NavHost besteden kaldırıldıktan sonra bile bellekte kalabilmesine neden olan sorun düzeltildi. (I893d0)

Bilinen Sorunlar

  • Gezinme 2.6.x'te, popUpTo ile gezinirken IllegalArgumentException hatasına neden olabilen bir sorun var. Burada önerilen tavsiyeye 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ı. Sürüm 2.7.0-beta02 bu kaydetmeleri içerir.

Hata Düzeltmeleri

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

Sürüm 2.7.0-beta01

7 Haziran 2023

androidx.navigation:navigation-*:2.7.0-beta01 yayınlandı. Sürüm 2.7.0-beta01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Mesaj Yazma Sihirbazı'ndaki NavHost, Activity STOPPED ve RESUMED sonrasında bile sisteme yönelik geri aramalarına artık 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 kaydetmeleri içerir.

Refakatçiden Animasyonlar

AnimatedContent kararlı olduğu için kodu Emperist Gezinme Animasyonu'ndan, Gezinme Oluşturma Animasyonu'na geri taşıyabildik.

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

Refakatçi Gezinme Animasyonu'nda başka değişiklik yapılmayacak. Yakında bu özelliği ve Navigation Compose'a geri dönmeyle ilgili talimatlar da resmi olarak kullanımdan kaldırılacak. Ancak en son Eşlik eden alfa sürümünü (0.31.2-alpha) kullanıyorsanız başka bir API değişikliği yapmanıza gerek kalmadan bu, taşıma rehberinin tam tersi olacaktır. (b/197140101)

Hata Düzeltmeleri

  • Gezinme 2.6.0-rc02'den: Parçalar'da Gezinmeyle ilgili sorun düzeltildi. Bu sorun, popUpTo ile gezinmenin ve arka yığından bir parçanın, görünümünü yeniden oluşturmadan arka yığının dışına çıkartılmasının sistemin tekrar çalışmayı durdurmasına neden olmasına yol açtı. (Ieb8d4, b/281726455)

Bağımlılık Güncellemeleri

  • Gezinme artık E-posta Yazma 1.5.0-beta01 uygulamasına bağlı.

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 kaydetmeleri içerir.

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

  • NavBackStackEntry işlevinin OnDestinationChangedListener öğesine iletilen arguments ve arguments değerleri artık yalnızca hedefe gittiğinizde oluşturulan sabit bağımsız değişkenlerin bir kopyası. Yani bu Paketlerde yapılan değişiklikler, arguments veya diğer OnDestinationChangedListener örneklerine sonraki erişimlere yansıtılmaz.
  • NavDeepLink artık diziler için varsayılan değerleri desteklemektedir. Bu özellik, bağımsız değişkenin dizi türüyle eşlenecek tekrarlanan sorgu parametreleri için destek sağlar. NavType artık ayrıştırılmış iki değeri birleştirmek için geçersiz kılınabilecek varsayılan bir yöntem de içeriyor.
  • NavType özel alt sınıfları artık bir değeri Dize olarak serileştirmek için serializeAsValue değerini geçersiz kılabilir. Böylece hem serileştirme hem de seri durumdan çıkarma (parseValue üzerinden) tamamen NavType sınıfına dahil edilebilir. StringType artık belirtilen String üzerinde Uri.encode yöntemini çağırmak için bu yöntemi geçersiz kılıyor.

2.5.0'dan itibaren Mesaj Yazma Gezinmesinde yapılan önemli değişiklikler

  • NavHost ile bir composable'ın önizlemesi yapılırken artık NavGraph'in startDestination özelliği varsayılan olarak gösterilecek.
  • NavController.popBackStack(route), NavController.getBackStackEntry(route) ve NavController.clearBackStack(route) artık kısmen veya tamamen doldurulmuş bağımsız değişkenler içeren rotaları destekliyor. Bağımsız değişkenlerin, girişin bağımsız değişkenleriyle tam olarak eşleşmesi gerektiğini unutmayın.
  • Artık navDeepLink Kotlin DSL'sini kullanarak boş bir NavDeepLink oluşturulmaya çalışıldığında, derin bağlantının geçerli olması için URI, işlem ve/veya mime türüne ihtiyacı olduğunu belirten bir lint uyarısı gösterilecek.

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

  • NavHostFragment artık sistemin geri düğmesinin kendisinde araya gelmez. Bu, temel FragmentManager öğesinin sistemi geri almasını sağlar. Bu, Parça 1.7.0-alpha01 ve sonraki sürümlerin Android U cihazlarda Uygulama İçi Tahmine Dayalı Geri Dönme animasyonu sağlamasına olanak tanır.
  • Parçalarla Gezinme kullanılırken FragmentManager öğesinin arka yığınına parça ekleyen bir FragmentTransaction işlemini manuel olarak yapmaya çalıştığınızda IllegalArgumentException hatası verir. Parçaları her zaman navigate() API'si aracılığıyla eklemelisiniz.
  • Gezinme XML dosyasının etkinlik öğesindeki app:data ve app:dataPattern özelliklerinde yer tutucu olarak ${applicationId} dizesi tam olarak kullanıldığında, yer tutucu, uzatıldığında otomatik olarak bağlamın packageName değeri ile doldurulur.
  • FragmentNavigator, NavBackStackEntries uygulamasında gezinirken ve gezinirken artık geçiş API'lerini kullanıyor. Yani NavBackStackEntry Lifecycle, son Lifecycle.State öğesini taşımadan önce parça özel efektlerinin girilmesi ve özel efektlerinin tamamlanmasını bekleyecek.
  • DialogFragmentNavigator, NavBackStackEntries uygulamasında gezinirken ve gezinirken artık geçiş API'lerini kullanıyor. Yani NavBackStackEntry Lifecycle, DESTROYED hizmetine geçmeden önce DialogFragment Lifecycle öğesinin DESTROYED paketine taşınmasını bekleyecek.
  • NavHostFragment artık onCreate() etiketinden sonra değil, NavHostFragment FragmentManager öğesine eklenir bağlanmaz NavController öğesini almanıza izin veriyor.
  • Gezinme'nin Dinamik Özellik Modülleri için sunduğu destek artık ayrıntılı Play Feature Delivery Kitaplığı'na bağlıdır.
  • Gezinme Güvenli Bağımsız Değişkenler artık Android Gradle Eklentisinin 7.3.0 sürümüne bağlı. Bu da artık yalnızca 7.3.0 ve üstü sürümlerle uyumlu olduğu anlamına geliyor.

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

  • NavigationUI, bir gezinme grafiğinin kimliği AppBarConfiguration hedefine aktarılırken (ör. Menu aracılığıyla) grafikteki her hedefi hatalı bir şekilde üst düzey hedef olarak işaretlemek yerine ilgili gezinme grafiğinin yalnızca başlangıç hedefini üst düzey hedef olarak kabul ediyor. Tek bir hedefin kimliğini iletme davranışında değişiklik olmaz. Aynı işlev, AppBarConfiguration adresindeki yeni isTopLevelDestination işlevi aracılığıyla kendi kodunuzda da kullanılabilir.
  • Üstteki uygulama çubuğuyla çalışmak için NavigationUI ürününde bulunan setupWithNavController entegrasyonları artık, otomatik olarak oluşturulan kaynak tam sayısını çıkarmak yerine android:label öğenizde bulunan ReferenceType bağımsız değişkene ait R.string değerini dize değerlerine ayrıştıracak.
  • NavigationUI artık seçili MenuItem üzerinden gezinemediğ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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Parçalarda Gezinmeyle ilgili olarak, popUpTo ile gezinmenin ve görünümü yeniden oluşturmadan bir parçayı arka yığından çıkarıp sistemin tekrar çalışmayı durdurmasına neden olan 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Gezinme işleminde, onResume() yaşam döngüsü geri çağırması sırasında popUpTo ile gezinme yoluyla bir parçanın kaldırılmasının IllegalStateException'a neden olacağı, parçalara sahip 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ı. Sürüm 2.6.0-beta01 bu kaydetmeleri 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 parça ekleyen bir FragmentTransaction işlemini manuel olarak yapmaya çalıştığınızda IllegalArgumentException hatası verir. Parçaları her zaman navigate() API'si aracılığıyla eklemelisiniz. (I6d38e)
  • Bir giriş ekleyen navigate ve aynı çerçevede onu kaldıran bir popBackStack olduğunda, arka yığında ortaya çıkan en üstteki giriş tutarlı bir şekilde RESUMED Lifecycle.State öğesine geri döndürülür. (Id8067, b/276495952)

Sürüm 2.6.0-alpha09

5 Nisan 2023

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

Hata Düzeltmeleri

  • NavDestination değerinin null olmayan NavArgument içermesi halinde bu hedefin rotasının, null olmayan NavArgument ile aynı ada sahip bağımsız değişkenler için yer tutucular içermesi gerektiği gibi geçersiz rota kontrolleri düzeltildi. (Ic62bf, b/274697949)
  • Gezinme işleminde, Action/MimeType öğesinin eşleştiği NavDestination için gereken null olmayan bir NavArgument eksikse Action/MimeType tabanlı derin bağlantı gezinmeleri artık başarısız olacak. (İbfa17, b/271777424)
  • NavController, önceki grafikle aynı rota ve hedeflere sahip bir grafik belirlediğinde artık mevcut grafik düğümlerini ve arka yığın hedeflerini doğru şekilde yeni örneklerle değiştirir. Bu düzeltme, Gezinme Oluşturma Aracı'nda durum kaydedilmeden onLaunchSingleTop kullanılırken karşılaşılan kilitlenmeyi düzeltir. Bu, kök grafik derlemeleri ve yanlış geriye dönük yığınla ilişkili hedeflere gidilmesine ilişkin 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 kaydetmeleri içerir.

Yeni Özellikler

  • NavHostFragment artık onCreate() etiketinden sonra değil, NavHostFragment FragmentManager öğesine eklenir bağlanmaz NavController öğesini almanıza izin veriyor. (Ic6382, b/220186282)

Hata Düzeltmeleri

  • Null yapılamayan bağımsız değişken içeren iç içe geçmiş bir grafik açılırken NullPointerException sorunu düzeltildi. (6b3581, b/249988437)
  • popUpTo ile gezinme yaptıktan sonra sistemi geri kullandığınızda NavController durumu doğru girişte gösterilir. (I3a8ec, b/270447657)
  • FragmentNavigator artık geriye yığın sistem geri veya popBackStack() işleviyle açıldığında ve işlemin, parça için efektleri kullanıp kullanmadığı fark etmeksizin düzgün şekilde giriş yapacaktır. (I81bdf)
  • FragmentNavigator öğesine parça ekleme Navigasyonu kullanmadan FragmentManager işlemi 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Rota alan getBackStackEntry, popBackStack, clearBackStack API varyantları artık boş bağımsız değişkenler ve boş değer atanabilir sorgu parametreleri (I22294, b/269302500) içeren rota kalıpları kullanıyor.
  • NavController öğesinden clearBackStack() çağrısının, temizlenen geri yığınla ilişkili parça yöneticisindeki kayıtlı durumu temizlememesine neden olan sorun düzeltildi. (Ic1cce, b/271190202)
  • 2.6.0-alpha06 sürümlerinde, sekmeler arasında sistem geri kullanıldığında BottomNavigationView içindeki yanlış MenuItem değerinin vurgulanmasına neden olan regresyon düzeltildi. (I634f6, b/270447657)
  • 2.6.0-alpha06 sürümlerindeki regresyon, Animation kullanılırken NavBackStackEntry öğelerinin DEVAM EDİLDİ durumuna taşınmamasına neden olan regresyon 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 kaydetmeleri içerir.

Yeni özellikler

  • NavHost ile bir composable'ın önizlemesi yapılırken artık NavGraph'in startDestination özelliği varsayılan olarak gösterilecek. (I2b89f)

API Değişiklikleri

  • Ana iş parçacığında çağrıldıklarından emin olmak için tüm NavController navigate aşırı yüklemeleri artık @MainThread ile ek açıklama olarak sunuluyor. (I2c0b0, b/263427111)

Hata Düzeltmeleri

  • Dinamik Parçalı Gezinme kullanılırken gezinmeye çalışırken yaşanan kilitlenme düzeltildi. (I3ee29, b/268360479)
  • Sistem geri düğmesi aracılığıyla başka bir parçaya gidildiğinde alt çubuğun doğru seçilen öğeye güncellenmemesiyle ilgili hata düzeltildi (If559f, b/269044426)

Bilinen Sorunlar

  • Parçalarla Gezinme özelliği kullanılırken Animation API'leri kullanıldığında NavBackStackEntry'nin Yaşam Döngüsü RESUMED değerine ulaşamıyor. (b/269646882)
  • Parçalarla Gezinme özelliğini kullanırken ve BottomNavigation ile gezinirken birden çok girişli bir geri yığını geri yüklemeye çalışırsanız BottomMenuItem doğru şekilde güncellenmez. (b/270447657)
  • Parçalarla Gezinme kullanılırken durum geri yüklendikten sonra NavBackStackEntry Lifecycle, 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 kaydetmeleri içerir.

Yeni Özellikler

  • NavController.popBackStack(route), NavController.getBackStackEntry(route) ve NavController.clearBackStack(route) artık kısmen veya tamamen doldurulmuş bağımsız değişkenler içeren rotaları destekliyor. Bağımsız değişkenlerin, girişin bağımsız değişkenleriyle tam olarak eşleşmesi gerektiğini unutmayın. (Iebd28, Ic678c, I3b37b, b/257514373)
  • FragmentNavigator, NavBackStackEntries uygulamasında gezinirken ve gezinirken artık geçiş API'lerini kullanıyor. Yani NavBackStackEntry Lifecycle, son Lifecycle.State öğesini taşımadan önce parça özel efektlerinin girilmesi ve özel efektlerinin tamamlanmasını bekleyecek. (I3cb19, b/238686802)
  • DialogFragmentNavigator, NavBackStackEntries uygulamasında gezinirken ve gezinirken artık geçiş API'lerini kullanıyor. Yani NavBackStackEntry Lifecycle, DESTROYED hizmetine geçmeden önce DialogFragment Lifecycle öğesinin DESTROYED paketine taşınmasını bekleyecek. (I53ee5, b/261213893)

API Değişiklikleri

  • NavigatorState, Navigator öğelerinin NavBackStackEntries öğelerini ara Lifecycle.State öğelerine taşımalarını sağlamak için artık prepareForTransition API'sini sağlamaktadır. (I42c21, b/238686802)
  • Artık bir NavGraphNavigator veya ComposeNavigator ile ilişkili arka yığınına backstack mülkü üzerinden erişebilirsiniz. ComposeNavigator, artık gezinme veya popBackStack işlemini yürüten bir NavBackStackEntry öğesini işaretlemek için onTransitionComplete() geri çağırmasını da sunuyor. (I02062, I718db, b/257519195)

Hata Düzeltmeleri

  • push/popWithTransition API'leri kullanılırken ve giriş zaten işleniyorsa gezgin durumu artık çalışmayacak. (Iadbfa, b/261213893)
  • launchSingleTop, iç içe yerleştirilmiş bir NavGraph ile kullanılırken orijinal hedeften startDestination hedefine başlayan tüm hedefler yalnızca geri yığının en üstüne düzgün şekilde eklenir. (Id4bea, b/253256629)
  • Navigasyon artık, launchSingleTop işareti doğru değerine ayarlanmış olarak aynı hedefe giderken DialogFragment örneğini düzgün bir şekilde değiştirecektir. (I45b5a, b/149572817)
  • Gezinme SafeArgs, artık tam olarak 19 karakter uzunluğundaki bağımsız değişkenler kullanılırken 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 kaydetmeleri içerir.

Yeni Özellikler

  • NavType özel alt sınıfları artık bir değeri Dize olarak serileştirmek için serializeAsValue değerini geçersiz kılabilir. Böylece hem serileştirme hem de seri durumdan çıkarma (parseValue üzerinden) tamamen NavType sınıfına dahil edilebilir. StringType artık belirtilen String üzerinde Uri.encode yöntemini çağırmak için bu yöntemi geçersiz kılıyor. (Ie5213, b/247637434)
  • NavigationUI artık seçili MenuItem üzerinden gezinemediğinde günlükleri sağlıyor. (I2af5a, b/247730357)

Hata Düzeltmeleri

  • Gezinme derin bağlantıları artık grafik başlatma sırasında değil, gecikmeli şekilde ayrıştırılıyor. Bu da uygulama başlangıcında uygulama performansını artırabilir. (Iab0ab)
  • Boş varsayılan bağımsız değişkenlere sahip bir hedefe derin bağlantı oluşturulduktan sonra yukarı gidilmesinden kaynaklanan kilitlenme düzeltildi. (I51c24, b/243183636)

Bağımlılık Güncellemesi

  • Gezinme'nin Dinamik Özellik Modülleri için sunduğu destek artık ayrıntılı Play Feature Delivery Kitaplığı'na bağlıdır. (Ib4ddc)
  • Gezinme Güvenli Bağımsız Değişkenler artık Android Gradle Eklentisinin 7.3.0 sürümüne bağlı. Bu da artık yalnızca 7.3.0 ve üstü sürümlerle uyumlu olduğu anlamına geliyor. (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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • 2.5.3 gezinme bölmesinde: Crossfade adlı öğenin oluşturabileceği hedef olmadığında NavHost, artık NoSuchElementException oluşturulmasına neden olmaz. Artık besteyi atlarsınız. (Ieb46e, b/253299416)
  • Gezinme 2.5.3'den: Bir hedef arka yığından açıldığında kaydedilen Oluşturma durumunun (ör. rememberSaveable kullanımları) 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 kaydetmeleri içerir.

Davranış Değişiklikleri

  • NavigationUI, bir gezinme grafiğinin kimliği AppBarConfiguration hedefine aktarılırken (ör. Menu aracılığıyla) grafikteki her hedefi hatalı bir şekilde üst düzey hedef olarak işaretlemek yerine ilgili gezinme grafiğinin yalnızca başlangıç hedefini üst düzey hedef olarak kabul ediyor. Tek bir hedefin kimliğini iletme davranışında değişiklik olmaz. Aynı işlev, AppBarConfiguration adresindeki yeni isTopLevelDestination işlevi aracılığıyla kendi kodunuzda da kullanılabilir. (Ie936e, b/238496771)

Hata Düzeltmeleri

  • navigation:navigation-fragment bileşeni artık 1.5.2 Parça sürümüne bağımlı. (I00ba4)
  • İletişim kutusu gibi bir FloatingWindow hedefine gidildiğinde seçili menü öğesi artık güncellenmez. (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 kaydetmeleri içerir.

Yeni Özellikler

  • Üstteki uygulama çubuğuyla çalışmak için NavigationUI ürününde bulunan setupWithNavController entegrasyonları artık, otomatik olarak oluşturulan kaynak tam sayısını çıkarmak yerine android:label öğenizde bulunan ReferenceType bağımsız değişkene ait R.string değerini dize değerlerine ayrıştıracak. (I5f803, b/167959935)
  • NavDeepLink artık diziler için varsayılan değerleri desteklemektedir. Bu özellik, bağımsız değişkenin dizi türüyle eşlenecek tekrarlanan sorgu parametreleri için destek sağlar. NavType artık ayrıştırılmış iki değeri birleştirmek için geçersiz kılınabilecek varsayılan bir yöntem de içeriyor. (Id68c3, b/209977108)
  • Gezinme XML dosyasının etkinlik öğesindeki app:data ve app:dataPattern özelliklerinde yer tutucu olarak ${applicationId} dizesi tam olarak kullanıldığında, yer tutucu, uzatıldığında otomatik olarak bağlamın packageName değeri ile doldurulur. (Iaabde, b/234223561)
  • Artık navDeepLink Kotlin DSL'sini kullanarak boş bir NavDeepLink oluşturulmaya çalışıldığında, derin bağlantının geçerli olması için URI, işlem ve/veya mime türüne ihtiyacı olduğunu belirten bir lint uyarısı gösterilecek. (I08d2f, b/154038883)

API Değişiklikleri

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

Davranış Değişiklikleri

  • NavBackStackEntry'nin 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. Yani bu Paketlerde yapılan değişiklikler, arguments veya diğer OnDestinationChangedListener örneklerine sonraki erişimlere yansıtılmaz. (I676f5)

Hata Düzeltmeleri

  • Gezinme 2.5.2: Dinamik Gezinme artık diğer modüllere gitmeden önce Etkinlik hedeflerini düzgün şekilde yüklemeyi deniyor. (Ia2c16, b/240292838)
  • Gezinme 2.5.2'den: Aynı hedefe gidildiğinde ve launchSingleTop işareti "doğru" olarak ayarlandığında Navigasyon, artık Parça örneğini düzgün bir şekilde değiştirecektir. (I5a2f1, b/237374580)
  • Gezinme 2.5.2'dan: Bir üst içe aktarılmış yeni bir başlangıç hedefiyle aynı grafiğe gidilmesinden kaynaklanan 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • NavHost, Crossfade tarafından oluşturulabilecek hedef olmadığında artık NoSuchElementException oluşturulmasına neden olmayacak. Artık besteyi atlarsınız. (Ieb46e, b/253299416)
  • Bir hedef arka yığından çıkarıldığında kaydedilen Oluşturma durumunun (ör. rememberSaveable kullanımları) 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Dinamik Gezinme artık diğer modüllere gitmeden önce Etkinlik hedeflerini düzgün şekilde yüklemeyi deniyor. (Ia2c16, b/240292838)
  • Navigasyon artık aynı hedefe gidildiğinde ve launchSingleTop işareti doğru değerine ayarlandığında Fragment örneğinin yerini düzgün bir şekilde alacaktır. (I5a2f1, b/237374580)
  • Yeni çalıştırılan başlangıç hedefiyle bir üst öğeyi paylaşan çift iç içe yerleştirilmiş grafiğe gidilmesinden kaynaklanan IllegalStateException sorunu 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Navigation Safe Args, Bundle içinde kayıtlı özel bağımsız değişken türleri kullanılırken oluşturulan sınıflarda 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ı. 2.5.0 sürümü bu kaydetmeleri içerir.

2.4.0'dan bu yana önemli değişiklikler

  • CreationExtras Entegrasyonu - Navigation, artık Yaşam döngüsü 2.5.0'nin CreationExtras aracılığıyla durum bilgisiz bir ViewModelProvider.Factory sağlayabilir.

Navigasyon Güvenli Aramaları

  • Navigation Safe Args, 7.0 tarihinden önceki AGP sürümlerinin uyumluluğunu azaltarak Android Gradle Plugin bağımlılığını 7.0.4 yöntemini kullanacak şekilde yükseltti.
  • applicationId yerine kullanılacak ad alanı build.gradle özelliği için destek eklendi.

Diğer Değişiklikler

  • visibleEntries API artık deneysel değildir ve NavController uyarınca hedefi şu anda 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Gezinme Oluşturma NavHost özelliği kullanılırken en alt hedefler arasında hızlı geçişten kaynaklanan kilitlenme düzeltildi. (I3979a, b/234054916)
  • applicationId bulunmayan bir applicationIdSuffix ve ad alanı kullanılırken ya da applicationId ile ad alanı farklı olduğunda Navigation SafeArgs artık kilitlenmez. (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ı. Sürüm 2.5.0-rc01 bu kaydetmeleri içerir.

Yeni Özellikler

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

Hata Düzeltmeleri

  • NavHost ve DialogHost seçeneklerindeki oluşturulabilir kapsamlar artık beklenen sırada, yani iç composable'lar dıştan önce bertaraf edildi composables. (I157e6)
  • Gezinme SafeArgs, önbellekte yeniden konumlandırılabilmesi için artık ArgumentsGenerationTask içinde PathSensitivity.RELATIVE kullanıyor. Bu sayede önbellek girişi artık CI derlemesinden yerel derlemeye yeniden kullanılabilir. (I5f67c, b/173420454)
  • UnrememberedGetBackStackEntryDetector lint kuralı, getBackStackEntry() çağrısını çevreleyen remember çağrısının, anahtar olarak bir NavBackStackEntry nesnesinde de iletildiğinden emin olmak için güncellendi.(Ib7081, b/227382831)

Sürüm 2.5.0-beta01

20 Nisan 2022

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

Hata Düzeltmeleri

  • DialogNavigator, dismiss() çağrısı yürütürken artık popWithTransition kullanıyor. Bu hata, dialog hedefi içinde bir ViewModel kullanılırken sistemin geri kullanılması veya iletişim kutusunun dışına dokunarak iletişim kutusu kapatılmasında IllegalStateException oluşmasına neden olan yarış durumunu düzeltir. (Id7376, b/226552301)

Bağımlılık Güncellemeleri

  • Gezinme artık Yaşam Döngüsü 2.5.0-beta01'ne bağlıdır. Birden fazla arka yığın kullanılırken bir NavHost, birincil olmayan alt gezinme sekmesinde bir NavHost içine iç içe 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ı. 2.5.0-alpha04 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

Hata Düzeltmeleri

  • NavHost, hangi girişlerin oluşturulacağını belirlemek için artık NavController kaynaklı visibleEntries işlevini kullanmaktadır. Bu, iç içe yerleştirilmiş ya da NavHost'un iç NavHost öğesini düzgün bir şekilde canlandırması gerekir. (I4ba2b, b/225394514)
  • NavController tarafından sağlanan visibleEntries StateFlow değeri, artık mevcut yaşam döngüsü durumu yerine girişin maksimum yaşam döngüsü durumunu temel alıyor. Bu nedenle, navController ana makine yaşam döngüsü BAŞLANGIÇ öğesinin altına gelse bile, görünür bütün öğelerin listesi aynı kalır. (I9e2a8, b/225394514)
  • SavedStateViewFactory, SavedStateRegistryOwner ile başlatıldığında bile artık CreationExtras kullanımını destekliyor. Ekstra özellikler 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 edilmektedir. (I70a0d, b/217399862)
  • Navigation Safe Args artık ad alanları kullanılırken kilitlenmez 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ı. Sürüm 2.5.0-alpha03 bu kaydetmeleri içerir.

API Değişiklikleri

  • Artık CreationExtras sonra by navGraphViewModels adlı kullanıcıya geçebilirsiniz ViewModel oluşturmak için (I29217, b/217618359)

Hata Düzeltmeleri

  • NavDeepLinks artık rotalara/derin bağlantı URI'lerine yerleştirilmiş kodlanmış yeni satır karakterlerini düzgün bir şekilde destekliyor. (I513d1, b/217815060)
  • CreationExtras, şununla kullanıldığında artık düzgün şekilde çalışacak: ViewModelleri oluşturmak için NavBackStackEntries. (I69161, b/217617710)
  • Gezinme Güvenli Bağımsız Değişkenler artık tanımlı ad alanının kullanılmasını destekliyor. build.gradle ekler. (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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • 2.4.1 gezinme bölmesinden: NavHostFragment artık İç içe yerleştirilmiş grafiklerle görüntüleme bağlama kullanılırken OnBackPressedDispatcher. (Ifbb51, b/214577959)
  • Gezinme 2.4.1'den: İç içe yerleştirilmiş birden fazla NavGraph üzerinden derin bağlantı oluşturulurken arka yığın artık ara başlangıç hedeflerini düzgün şekilde içerecek. (I504c0, b/214383060)

Sürüm 2.5.0-alpha01

26 Ocak 2022

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

Yeni Özellikler

Hata Düzeltmeleri

  • ViewModel öğesine erişimin oluşturulmasıyla ilgili sorun düzeltildi bir Parçanın onCreate() uygulamasından by navGraphViewModels() üzerinden IllegalStateException ile başarısız olur. (I8a14d)
  • NavDeepLink artık bağımsız değişkenlerin kodunu iki kez gereksiz yere çözmeyecek, Bu, uygun bağımsız değişkenlerin artık son hedefinize iletildiği anlamına gelir. (I31b0a, b/210711399)

Güvenli Bağımsız Değişkenler

  • Güvenli Bağımsız Değişkenler artık Android Gradle Eklentisinin 7.0.4 sürümüne bağlı. Bu, Navigasyon Güvenli Bağımsız Değişkenlerinin artık Android Studio 7.0'dan önceki sürümler, ancak artık Android Gradle Plugin 7.1.0 ve sonraki sürümler. (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ı. Sürüm 2.4.2 bu kaydetmeleri 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ı. Sürüm 2.4.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • NavHostFragment artık iç içe yerleştirilmiş grafiklerle görüntüleme bağlamayı kullanırken OnBackPressedDispatcher düzgün şekilde ayarlanacak. (Ifbb51, b/214577959)
  • İç içe yerleştirilmiş birden fazla NavGraph üzerinden derin bağlantı oluşturulurken arka yığın artık ara başlangıç hedeflerini düzgün bir şekilde içerecektir. (I504c0, b/214383060)
  • Gezinme 2.5.0-alpha01'den geri bağlantı yapıldı: ViewModel'e erişimin oluşturulmasıyla ilgili bir sorun düzeltildi bir Fragment'ın onCreate() konumundan by navGraphViewModels() aracılığıyla IllegalStateException ile başarısız olur. (I8a14d)
  • 2.5.0-alpha01 gezinmesinden eski sürüme aktarıldı: NavDeepLink artık bağımsız değişkenlerin kodunu iki kez gereksiz bir şekilde çözmüyor, Diğer bir deyişle, kodu doğru şekilde çözülmüş bağımsız değişkenlerin artık son hedefinize iletilmiş olması gerekir. (I31b0a, b/210711399)
  • Gezinme 2.5.0-alpha01'dan geri bağlanmış: Güvenli Bağımsız Değişkenler artık Android Gradle Eklentisinin 7.0.4 sürümüne bağlıdır. Bu, Navigasyon Güvenli Bağımsız Değişkenler'in artık 7.0'dan önceki Android Studio sürümleriyle uyumlu olmayacağı, ancak Android Gradle Eklentisi 7.1.0 ve sonraki sürümleriyle uyumlu olduğu 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 kaydetmeleri içerir.

2.3.0'dan bu yana önemli değişiklikler

  • Tüm Navigasyon yapıları Kotlin'de yeniden yazıldı. Bu, genel anahtar kelimeler (NavType alt sınıf gibi) kullanan sınıfların null (boşluk) ayarını iyileştirdi. 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 üzerinden iki bölme düzeninin önceden oluşturulmuş bir uygulamasını içeriyor. Bu parça, örnek uygulamamızda görüldüğü gibi, liste bölmesini (alt sınıfınızın sağladığı) yönetmek için bir SlidingPaneLayout ve uygulama olarak NavHostFragment kullanan bir ayrıntı bölmesini kullanır.
  • NavController üzerindeki currentBackStackEntryAsFlow() yöntemi, geçerli NavBackStackEntry her değiştiğinde yayınlanan bir Flow sağlar. Bu akış, OnDestinationChangedListener öğesini manuel olarak yönetmeye alternatif olarak kullanılabilir.
  • NavController, artık deneysel visibleEntries özelliği aracılığıyla görünür NavBackStackEntry örneklerinin listesini StateFlow olarak alma imkanı sunuyor.
  • Artık NavType sınıfını genişleterek özel NavType'lar. Özel türler yalnızca gezinme grafiğini programatik olarak (örneğin, Gezinme Grafiği Kotlin DSL.
  • Gezinme artık özel NavigationUI'nin uygulanmasına yardımcı olmak için kullanılabilecek findStartDestination() ve getHierarchy() API'lerini sağlıyor. findStartDestination(), startDestination öğesinin kendisi iç içe yerleştirilmiş bir NavGraph olsa bile, grafiğe gittiğinizde görüntülenecek asıl başlangıç hedefini NavGraph üzerinde gösteren bir uzantı işlevidir. getHierarchy(), belirli bir hedefin başka bir hedefin hiyerarşisinde olup olmadığını doğrulamak için kullanılabilen NavDestination işlevidir.

    val matchingRoute: Boolean = destination.hierarchy.any { it.route == routeToFind }
    
  • BottomNavigationView alan NavigationUI yöntemleri, Materyal 1.4.0, NavigationBarView ile tanıtılan üst sınıfı kapsayacak şekilde güncellendi. Bu işlem, bu yöntemlerin NavigationRailView ile kullanılmasına olanak tanır.

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

  • Güvenli Bağımsız Değişkenler 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ümleri, her bir hedefi eşdüzey hedeflerden benzersiz olarak tanımlayan ve söz konusu hedefe doğrudan veya bir işlem aracılığıyla navigate() olanak tanıyan sabit bir tam sayı kimliğine sahipti. Bu, özellikle gezinme grafiğinizi XML'de tanımlarken ve otomatik olarak oluşturulan R.id sabitlerini veya Güvenli Bağımsız Değişkenleri (derleme zamanında kod oluşturmak için bu sabitleri kullanan) kullanabildiğiniz durumlarda, geçerli ve yararlı olmaya devam etmektedir. Ancak, bu benzersiz tam sayılar sistemi, Gezinme Kotlin DSL aracılığıyla çalışma zamanında programlı bir şekilde oluşturulan tümüyle dinamik grafikleri desteklemek için gereken anlam ve ifade düzeyini yakalamamıştır.

Bu sürümde, navigasyon grafiğinde bir varış noktasının rotaya göre benzersiz şekilde tanımlanması için yeni bir seçenek kullanıma sunuluyor. Rota, bir hedefe giden benzersiz yolu tanımlayan bir String'dir. Hedef kimliği alan tüm Kotlin DSL yöntemlerinin desteği sonlandırılıyor ve bu yöntemler, rotasını izleyen eşdeğer bir API ile değiştiriliyor.

Her rota, ilgili hedefi tanımlayan bir 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 rotanın bir parçası olmalı ve dolaylı derin bağlantılarla aynı kurallara uymalıdır.

Eskiden yalnızca kimlik alan tüm NavController API'leri artık String rotasını izleyen bir aşırı yüke sahip. Buna navigate(), popBackStack(), popUpTo() ve getBackStackEntry() dahildir.

Bunun API ile ilgili bazı etkileri oldu:

  • Kotlin DSL'deki popUpTo Kotlin özelliği kullanımdan kaldırıldı ve popUpToId.
  • getStartDestination() API desteği sonlandırıldı / getStartDestinationId().

Kimliğe göre gezinmenin aksine, rotayla gezinme dolaylı derin bağlantılarla aynı kurallara uyar. Çünkü iç içe yerleştirilmiş herhangi bir grafikteki herhangi bir hedefe doğrudan gidilebilir ve bu sayede, her bir hedefe harici olarak görünür bir derin bağlantı eklenmeden bu rotaların çok modüllü projelerde kullanılabilir olması sağlanır.

Gezinmede Yazma

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

Bu sürüm şunları sağlar:

  • composable ve dialog hedeflerini kullanarak gezinme grafiğinizi bir Kotlin DSL'si aracılığıyla oluşturmanıza olanak tanıyan, ayrıca Eşlikçi Navigasyon Materyali gibi isteğe bağlı Gezginler için destek sunan bir NavHost composable.
  • Hedefler arasında çapraz geçiş için zorunlu destek. Eşlikçi Gezinme Animasyonu, deneysel Compose API'leri kullanılarak giriş ve çıkış geçişlerini kontrol etmek için kullanılabilir.
  • Her composable hedef için bir Lifecycle kapsamı. Her hedef yalnızca giriş geçişleri tamamlandığında RESUMED durumuna ulaşır ve çıkışlar başladığında hemen STARTED değerine düşer. Böylece, yalnızca Lifecycle RESUMED olduğunda bir navigate çağrısı tetikleyerek IllegalStateException ve çoklu dokunma sorunlarının tümünü önleyebilirsiniz.
  • ViewModel kapsamının belirlenmesi (Lifecycle ViewModel Compose 2.4.0 viewModel() API'si veya Hilt Navigation Compose 1.0.0da hiltViewModel() öğesinin hiltViewModel() API'si aracılığıyla), yapılandırma değişikliklerinden ve arka yığında kalma (comosable içeriğiniz başka bir şekilde kullanılmadığında) için ve ViewModel'in onCleared() cihazında, söz konusu {10 ile ilişkili durumun kalıcı olarak imha ve temizlenmesini belirten bir sinyal sağlar.NavBackStackEntry
  • rememberSaveable durumunun hedef düzeyinde kapsamı, composable durumlarının bir hedefe döndüğünüzde otomatik olarak kaydedilmesini ve geri yüklenmesini sağlar.
  • İşlemin ölümü ve yeniden oluşturulması sonrasında NavController durumunu ve hedefinin durumunu kaydedip geri yüklemek için tam destek.
  • Sistem geri düğmesiyle otomatik entegrasyon.
  • Bağımsız değişkenleri iletme, hedeflere derin bağlantılar ekleme ve önceki hedeflere sonuç döndürme için destek.

  • Kaldırma durumuna ve NavController öğesini NavHost dışındaki composable'lara (alt gezinme çubuğu gibi) bağlamaya izin vermek için rememberNavController() ve currentBackStackEntryAsState() ürünlerinde 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 Oluşturma Gezinme rehberine bakın.

Birden çok yığın

NavController, hedef yığınlarını yönetmekten, navigate() eklendiklerinde arka yığına hedef eklemekten ve popBackStack() çağrısı yaptığınızda ya da sistem geri düğmesini tetiklediğinde kaldırmaktan sorumludur. Mevcut NavOptions sınıfı ve gezinme grafiği XML'sindeki <action> öğeleriyle entegrasyon, eski yığının kaydedilip geri yüklenmesini destekleyecek şekilde genişletildi.

Bu değişiklik kapsamında, onNavDestinationSelected(), BottomNavigationView.setupWithNavController() ve NavigationView.setupWithNavController() NavigationUI yöntemleri artık aktarılmış hedeflerin durumunu otomatik olarak kaydedip geri yükleyerek kod değişikliği yapılmadan birden fazla arka yığını desteklemeyi amaçlamaktadır. Gezinmeyi Parçalarla kullanırken birden fazla yığınla entegrasyon sağlamak için bu yöntem önerilir.

Durumu kaydetmek ve geri yüklemek için kullanılan temel API'ler, çeşitli yüzeylerle gösterilir:

  • Gezinme XML'inde <action> öğesi artık app:popUpTo aracılığıyla açılan tüm hedeflerin durumunu kaydetmek ve app:destination olarak iletilen hedefle ilişkilendirilen durumu geri yüklemek için 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şturucu üzerinde 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 setRestoreState() ve ek saveState parametresi gerektiren setPopUpTo() için 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() için yapılan programatik çağrılar artık ek bir saveState parametresi içerebilir.

  • popBackStack() veya popUpToSaveState ile kaydedilmiş herhangi bir durumu temizlemek için clearBackStack() yöntemini kullanabilirsiniz.

Her durumda NavController, ViewModel örnekleri kapsamındaki gezinme hedefi kapsamındakiler de dahil olmak üzere her bir NavBackStackEntry öğesinin durumunu kaydeder ve geri yükler. Navigator API'leri, kendi durumlarını kaydetmeyi ve geri yüklemeyi destekleyecek şekilde her bir Navigator özelliğini etkinleştirecek şekilde güncellendi.

Davranış değişiklikleri

  • NavDeepLinkBuilder şimdi ekliyor PendingIntent yönüne giden PendingIntent.FLAG_IMMUTABLE treni createPendingIntent() tarafından döndürüldü ve Android 12 hedeflenirken bu API beklendiği gibi çalışıyor.
  • Navigasyon artık şunlara bağlı: Yaşam döngüsü 2.3.1 ve şu anda setGraph(), popBackStack(), navigateUp() ve navigate() olarak işaretlendi. NavBackStackEntry Lifecycle güncellenen, @MainThread olarak, Gezinme ana iş parçacığıyla hizalanıyor 2.3.0 Yaşam Döngüsü'nde yaptırım uygulanmaya başladı.
  • Derin bağlantılar artık gerekli tüm bağımsız değişkenlerin (varsayılan değeri olmayanlar) Uri içinde bulunduğunu doğruluyor.
  • Ayrıştırılmış NavDeepLink bağımsız değişkenleri artık soru işaretleriyle aynı şekilde yol segmentleri arasında ayırıcı olarak dikkate alıyor. Böylece, bağımsız değişkenin pound işareti boyunca yayılmasını engelliyor.
  • Güvenli Bağımsız değişkenlerden oluşturulan Kotlin kodu, işlem oluştururken artık varsayılan değerleri parametre olarak varsayılan değerlere sahiptir.
  • Güvenli Bağımsız Değişkenler artık bağımsız değişkenler oluştururken parametreler yerleştiriyor varsayılan değerleri olanlardan önce gelen varsayılan değerler olmadan.
  • Güvenli Arg'ler artık Android Gradle Plugin 4.2.0'a bağlı. Bu durumda artık "applicationIdTextResource kullanılıyor" uyarısını almayacaksınız.

Bilinen sorunlar

  • Gezinme 2.5.0-alpha01'de sorun düzeltildi: Oluşturulan ViewModel değerine erişim bir Parçanın onCreate() konumundan by navGraphViewModels() aracılığıyla IllegalStateException ile başarısız olur. (b/213504272)
  • Gezinme 2.5.0-alpha01 özelliğinde düzeltildi: Güvenli Bağımsız Değişkenler 2.4.0 uyumsuz Android Gradle Plugin 7.1.0 ve üzeri. (b/213086135)
  • İç içe yerleştirilmiş birden fazla gezinme grafiği içeren derin bağlantılar, tam eşlemeyi doğru şekilde oluşturmuyor Backstack. (b/214383060)

Sürüm 2.4.0-rc01

15 Aralık 2021

androidx.navigation:navigation-*:2.4.0-rc01 yayınlandı. Sürüm 2.4.0-rc01 bu kaydetmeleri içerir.

Davranış değişiklikleri

  • Ayrıştırılmış NavDeepLink bağımsız değişkende artık kare işareti, bağımsız değişkenler arasında ayırıcı olarak soru işareti olarak kullanılıyor. (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 açılırken NavController artık kilitlenmeyecek. (I0f7c9, b/205021623)
  • Geçersiz startDestination kullanılırken görüntülenen hata mesajı, varsa başlangıç hedefinin rotası için artık varsayılan olarak ayarlanacak. (I86b9d, b/208041894)

Gezinme Oluşturmada Hata Düzeltmeleri

  • Alttaki gezinme menüsü öğeleri kullanılarak başlangıç hedefi ile başka bir hedef arasında hızlı geçişten kaynaklanan olası kilitlenme düzeltildi. (Ic8976, b/208887901)
  • Yapılandırma değişikliklerinden veya işlem sona erdikten 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, iletişim kutusunun NavBackStackEntry öğesinden ViewModel alma girişiminin başarısız olmasına neden olan sorun düzeltildi. (I6b96d, b/206465487)
  • activity hedefleri, Gezinme Oluşturma özelliğinin NavHost özelliğiyle birlikte kullanıldığında sonsuz yeniden bestelemeye neden olabilecek bir sorun düzeltildi. (I8f64c)
  • Gezinme Oluşturma'da, bir yapılandırma değişikliği veya işlem ölümünün ardından eski etkinlik referansını muhafaza ettiği bir sızıntı düzeltildi. (I4efcb, b/204905432)

Güvenli Bağımsız Değişkenler Hata Düzeltmeleri

  • İşlem sona erdikten sonra özel ayrıştırılabilir diziler geri yüklenmeye çalışıldığında SafeArgs artık çökmüyor. (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ı. Sürüm 2.4.0-beta02 bu kaydetmeleri içerir.

API Değişiklikleri

  • Hem açık hem de gizli bilgilerin ele alınması derin bağlantılar artık saveState işaretini otomatik olarak ekliyor emin olmanız gerekir. Örneğin NavigationUI.setupWithNavController ve kodu düzgün şekilde çalışıyor. (Ic8807)

Davranış Değişiklikleri

  • Derin bağlantı kalıpları artık enflasyon sırasında değil, NavDeepLink'te geç derleniyor. Bu, derin bağlantılar içeren gezinme grafiklerinin şişirme süresini iyileştirecektir. (b8d257, b/184149935)

Hata Düzeltmeleri

  • NavBackStackEntries'in aşağı itilmesine neden olan bir sorun giderildi: Şu durumda Lifecycle.State.STARTED adresine taşındıktan sonra Lifecycle.State.CREATED NavHost doğrudan etkinliğin setContent() öğesine eklenir. (Ia5ac1, b/203536683)
  • Şu yarış koşulu düzeltildi: dışarıdan bir DialogFragment hedefi açılıyor iletişim kutusu gösterilmeden önceki yığın doğrudan iletişim kutusunu kapatmaz ve hatalı iletişim kutusu manuel olarak yapıldığında bir kilitlenme kullanıcı tarafından kapatıldı. (I687e5)
  • Şu sorun düzeltildi: NavigationUI üzerindeki onNavDestinationSelected API şunu yapar: şuna navigate() yapmamış olsanız bile true değerini döndürür: gezinme grafiğini kullanabilirsiniz. Şimdi aynı mantığı kullanıyor. setupWithNavController tarafından yalnızca geçerli öğeyle ilişkili MenuItem öğesini seçin hierarchy kullanarak hedefin yerini belirler. (I2b053)

Sürüm 2.4.0-beta01

27 Ekim 2021

androidx.navigation:navigation-*:2.4.0-beta01 yayınlandı. Sürüm 2.4.0-beta01 bu kaydetmeleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • visibleEntries API artık deneyseldir. (I93f6f)

Hata Düzeltmeleri

  • Geçişler yapıldığında ViewModeller artık yok edilmeyecek aynı ekranlar arasında ileri geri gidilerek kesintiye uğraması (Id52d8, b/200817333)
  • Boş değer atanabilir NavDeepLink bağımsız değişkenleri artık kullanılamıyor derin bağlantılar eklerken varsayılan bir değer gerektirir: NavDestination sn. (I5aad4, b/201320030)
  • Artık farklı Yaşam Döngüleri olan NavBackStackEntries artık eşit kabul edilir. Bu, NavHost'ın tüm öğeleri düzgün bir şekilde yeniden singleTop ile gezinme yaparken ve yeniden seçim yaparken hedefler seçenekleri vardır. (I1b351, b/196997433)
  • AbstractListDetailFragment ile ilgili bir sorun düzeltildi layout_width ve layout_weight özelliklerine neden olan onCreateListPaneView() tarafından döndürülen liste bölmesinde veya yoksayılmasına neden olabilir. (f5fbf3)
  • İletişim kutusu hedeflerinin görsel durumu artık açık öğesinin DialogFragmentNavigator durumu. Yani, eş zamansız eşlemenin manuel olarak çağrılması DialogFragment için dismiss() API artık tüm öğeleri düzgün şekilde temizliyor iletişim kutusu hedefleri gösterilir. Bu popUpTo veya İletişim kutusunu kapatmak için popBackStack(). (I77ba2)
  • Şimdi AbstractAppBarOnDestinationChangedListener onDestinationChanged() için daha açık hata mesajı içeriyor. (Ie742d)

Sürüm 2.4.0-alpha10

29 Eylül 2021

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

Yeni Özellikler

  • NavController artık görünür olan tüm öğelerin listesini alma imkanı sunuyor. visibleEntries StateFlow (Ia964e) üzerinden NavBackStackEntry örnek
  • rememberNavController() artık isteğe bağlı şuna eklenecek Navigator örnek kümesi isteğe bağlı olarak daha iyi destek sunmak için NavController tarihinde döndü Aşağıdakiler gibi gezginler: Refakatçi Gezinme Materyali. (I4619e)

Hata Düzeltmeleri

  • Etkinlik şu durumda olduğunda Dinamik Gezinme artık kilitlenmez: yeniden oluşturulmuş. (Ifa6a3, b/197942869)
  • Sistem geri düğmesinde yalnızca NavHost içeren bir composable hedefe geri döndürüldükten sonra ortaya çıkan sorun düzeltildi. (3ed148, b/195668143)
  • SafeArgs artık fromBundle() ve fromSavedStateHandle(), doğru parametre sırasında. (I824a8, b/200059831)

Sürüm 2.4.0-alpha09

15 Eylül 2021

androidx.navigation:navigation-*:2.4.0-alpha09 yayınlandı. Sürüm 2.4.0-alpha09 bu kaydetmeleri içerir.

Yeni Özellikler

  • Artık clearBackStack() yöntemini kullanabilirsiniz popBackStack() ile kaydedilen durumları temizleyin veya popUpToSaveState. (I80a0f)
  • Artık bir bağımsız değişken ve/veya derin bağlantı listesini iç içe geçmiş gezinme grafiği oluşturucusuyla çalışır ve otomatik olarak eklenir elde edilen grafiğe dökülür. (I8a470, b/182545357)

API Değişiklikleri

  • navArgument Kotlin DSL işlevi artık navigation-compose yerine navigation-common. Bu, şunu gerektirir: içe aktarmaları güncelleyerek bu işlevi kullanmaya devam edebilirsiniz. (I1d095)

Davranış Değişiklikleri

  • Güvenli Bağımsız Değişkenler artık bağımsız değişkenler oluştururken parametreler yerleştiriyor varsayılan değerleri olanlardan önce gelen varsayılan değerler olmadan. (I89709, b/198493585)

Hata Düzeltmeleri

  • Gezinme Oluşturma Özelliği kullanılırken NavGraphs yalnızca Tüm çocukları DESTROYED olduğunda DESTROYED. (I86552, b/198741720)
  • Boş değer atanabilir NavDeepLink bağımsız değişkenleri artık kullanılamıyor bir varsayılan değer gerektirir. (Ia14ef, b/198689811)
  • setGraph() yeni grafikle aranıyor hem de kaydedilen geri yığınları temizler. eski davranışına uyar. (I97f96)
  • Şu sorun giderildi: OnDestinationChangedListener örnek ve currentBackStackEntryFlow şu durumlarda bilgilendirilmedi: launchSingleTop kullanılıyor. (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 kaydetmeleri içerir.

Yeni Özellikler

Davranış Değişiklikleri

  • Güvenli Bağımsız değişkenlerden oluşturulan Kotlin kodu, işlem oluştururken artık varsayılan değerleri parametre olarak varsayılan değerlere sahiptir. (Idb697, b/188855904)
  • Derin bağlantılar artık gerekli tüm bağımsız değişkenlerin (varsayılan değeri olmayanlar) Uri içinde bulunduğunu doğruluyor. (#204, b/185527157)

Hata Düzeltmeleri

  • içinde getBackStackEntry ve previousBackStackEntry kullanılıyor composable(), remember() ile birlikte kullanıldığında arka yığında olmayan hedef yok. (I75138, b/194313238)
  • Gezinme Oluşturma Aracı artık eski sürüme döndüğünde düzgün bir şekilde yeniden oluşturuyor bağımsız değişkenleri üst üste yıkmak için launchSingleTop=true kullanın. (Iebd69, b/186392337)
  • ArrayIndexOutOfBoundsException artık yer almayacak 13 veya 29 varış noktası içeren bir grafikle setGraph aranıyor. (I1a9f1, b/195171984)
  • SafeArgs java oluşturucu artık lint'e neden olmamalıdır uyarılarının gösterilmesini sağlar. (I1a666, b/185843837)

Harici Katkı

  • Derin bağlantıların, gerekli tüm bağımsız değişkenlerin (varsayılan değeri olmayanlar) Uri içinde mevcut olduğunu doğruladığından emin olduğunuz için ospixd'ye 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Gezinme Oluşturma özelliği artık ve birden çok eşleme türü kullanılırken grafiklerde değişiklik yaptığınızda özelliği kullanılır. (If5a3d, b/195141957)
  • Gezinme menüsü kullanılırken aynı sekmeyi tekrar seçme birden fazla arka yığının olması artık boş ekran ile sonuçlanmayacak. (I860dc, b/194925622)
  • NavHost artık şu Lifecycle.State tablodaki değişiklikleri gözlemliyor: NavBackStackEntrys, yani bir parçada NavHost kullanıldığında artık olarak yeniden derlendiğinden emin olun. (I4eb85, b/195864489)
  • Bir DialogFragment, Etkinliğinizi yeniden oluşturduktan sonra NavController durumu (ör. bir yapılandırma değişikliğinden sonra). (Icd72b)
  • Pop-up'ın iletişim kutusu hedefi, NavController'ın sistem geri düğmesinin işlenmesine neden olabilir. NavController'ı kullanıp geri düğmesine müdahale ancak çürütülecek herhangi bir arka yığını yoktur. (If3b34)
  • Güvenli bağımsız değişkenler artık otomatik olarak bir toSavedStateHandle oluşturuyor yöntemini ViewModel kodunuzu test etmek için kullanabilirsiniz. (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 kaydetmeleri içerir.

API Değişiklikleri

  • AbstractListDetailFragment üzerindeki 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 değeri artık yalnızca animasyon tamamlandığında RESUMED hedefine ulaşacak. (If0543, b/172112072, b/194301889)
  • Gezinme Oluşturma'nın NavHost özelliği artık ilk bestenin parçası olarak grafiğe dönüştürüldü. (Ieb7be)

Hata Düzeltmeleri

  • Bir gezinme grafiğinin son hedefi yükseltildiğinde artık ClassCastException tetiklenmez. (If0543, b/172112072, b/194301889)
  • Uri olmadan derin bağlantı eklerken ve rota ya da derin bağlantı üzerinden gezinirken oluşabilecek NullPointerException düzeltildi. (938a0c, b/193805425)
  • Yazmada Gezinme'de şu sorun giderildi: derin bağlantılı bir NavBackStackEntry RESUMED durumu. (I192c5)
  • Bir iletişim kutusu hedefi açıldığında, NavController'ın sistem geri düğmesi işlemesinin güncellenmemesine neden olan sorun düzeltildi. Bu sorun, patlayacak herhangi bir geri yığını olmamasına rağmen NavController'ın geri düğmesine müdahale etmesine neden olabilir. (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 kaydetmeleri içerir.

Davranış Değişiklikleri

  • Yazma Sihirbazı'nın NavHost özelliği artık gezinirken her zaman çapraz geçişleri kullanıyor hedefler. (I07049, b/172112072)
  • Artık NavHost grafiğinde değişiklik yapabilirsiniz. Grafikler Başlangıç noktası aynı olan Hedef ve varış noktaları eşit kabul edilir ve NavController geri yığınını temizlemez. (I0b8db, b/175392262)

Hata Düzeltmeleri

  • Şu durumlarda NoSuchElementException düzeltildi: LifecycleObserver içinden popBackStack() aranıyor nedeniyle NavBackStackEntry öğesine eklenmiş NavController'ın durumuna ilişkin güncellemeler içerir. (I64621)
  • AbstractListDetailFragment artık izin veriyor SlidingPaneLayout şuradan tamamen çıkarılacak AbstractListDetailFragment kullanılmadığında APK'nız. (i611ad)
  • NavGraph ve NavDestination artık eşittir yöntemini geçersiz kılıyor. 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 kaydetmeleri içerir.

Yeni Özellikler

  • navigation-fragment yapısı, artık yeni AbstractListDetailFragment üzerinden iki bölme düzeninin önceden oluşturulmuş bir uygulamasını içeriyor. Bu parça, örnek uygulamamızda görüldüğü gibi, liste bölmesini (alt sınıfınızın sağladığı) yönetmek için bir SlidingPaneLayout ve uygulama olarak NavHostFragment kullanan bir ayrıntı bölmesini kullanır. (Iac4be, b/191276636)
  • navigation-compose yapısının NavHost tanesi artık composable hedeflerin yanı sıra dialog hedefi de destekliyor. Bu iletişim kutusu hedeflerinin her biri, geçerli composable hedefinin üzerinde kayan bir 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 tablosundaki add işlevi şu şekilde yeniden adlandırıldı: push. add() için yapılan tüm mevcut çağrıların push() olarak değiştirilmesi gerekir. (Ie89fc, b/172112072)
  • Özel Navigator örnekleri artık bir hedefi eşzamansız olarak aktarmak veya açmak için NavigatorState üzerinde pushWithTransaction ve popWithTransition API'lerini kullanabilir. Bu API'lerin henüz dahil olan kılavuzlardan hiçbiri tarafından kullanılmadığını unutmayın. (Ic4d7c, b/172112072)

Davranış Değişiklikleri

  • NavDeepLinkBuilder şimdi ekliyor PendingIntent yönüne giden PendingIntent.FLAG_IMMUTABLE treni createPendingIntent() tarafından döndürüldü ve Android 12 hedeflenirken bu API beklendiği gibi çalışıyor. (If8c52)

Hata Düzeltmeleri

  • <include-dynamic> ile ilgili şu sorun düzeltildi: Grafiğe aktarılan bağımsız değişkenler doğru şekilde iletilmez eklemeniz gerekir. (I3e115)
  • Bir hedefe giderken NullPointerException düzeltildi ve varsayılan değer @null olan bir string[] bağımsız değişkeni kullanılıyor. (I1fbe8)
  • @Navigator.Name için ProGuard kuralları ekleyerek sorunları düzeltin tam mod kullanırken. (I2add9, b/191654433)
  • SafeArgs artık 1.5.0 tarihinden önceki Kotlin sürüm. (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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Dahil edilen dinamik grafiğe gitmek için iki navigate() çağrısının gerekmesine neden olan sorun düzeltildi. (I7785c, b/188859835)
  • Şurada eklenen bir regresyon düzeltildi: Navigasyon 2.4.0-alpha01 nerede? setupActionBarWithNavController() şunu yapmazdı: yukarı simgesini kaldırmadan, üst düzey hedeftir. (I5d443, b/189868637)
  • Şu durumlarda IllegalStateException düzeltildi: daha önce açıldıktan sonra popBackStack() aranıyor kök grafiğine yerleştirin. (I2a330, b/190265699)
  • by navArgs() için ProGuard kuralları artık düzgün bir şekilde navigation-common veya herhangi bir yapı kullanırken uygula bir değişim yönetimi pratiği yapacaksınız. (I68800, b/190082521)
  • Çağrı yapan bir OnDestinationChangedListener Şu anda ilk kez geri arama aldığında navigate() düzgün şekilde ikinci bir geri arama alması için emin olmanız gerekir. (Ie5f9e, b/190228815)
  • Güvenli Bağımsız Değişkenler artık dinamik özellikle birlikte kullanıldığında kilitlenmiyor modülleri ve AGP 7.0 ve sonraki sürümleri. (I69518, b/189966576)

Bilinen Sorun

  • Güvenli Bağımsız Değişkenler, Kotlin'in eski bir sürümüne bağımlılık nedeniyle Gradle 6.7.0 kullanılırken 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 kullanılacak şekilde güncellenerek 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 kaydetmeleri içerir.

Yeni Özellikler

  • Rotalar artık Dinamik Gezinme Kotlin DSL'sinin yanı sıra Etkinlik, Parça ve İletişim hedefleri için desteklenmektedir. (Ib5544, Ia617b, I22f96, b/188914648, b/188901565)
  • NavigationUI, durumunuzun kaydedilmesini devre dışı bırakmanız için geçici olarak deneysel API'ler ekledi. Durumu her zaman kaydetmek doğru davranış olsa da durumu kaydederken desteklenmeyen kitaplıkların (ör.saklanan parçalar) kullanılmaya devam etmesi de mümkündür. Bu durum, uygulamaların desteklenmeyen API'lerden yavaşça dönüşüm gerçekleştirmelerine olanak tanır. (Idf93c)
  • Gezinme artık özel NavigationUI'nin uygulanmasına yardımcı olmak için kullanılabilecek findDestination() ve getHierarchy() API'lerini sağlıyor. findDestination(), NavGraph uygulamasında grafikteki bir hedefi belirleyecek bir uzantı işlevidir. getHierarchy(), belirli bir hedefin başka bir hedefin hiyerarşisinde olup olmadığını doğrulamak için kullanılabilen NavDestination işlevidir.(I2932f, b/188183365)

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

  • Bir <action> öğesini XML aracılığıyla şişirdiğinizde animasyon özellikleri şu kodu kullanarak temanızdan alınan özellikleri kullanın: app:enterAnim="?attr/transitionEnter" söz dizimi. (I07bc1, b/178291654)

API Değişiklikleri

  • Kimlik kullanan Kotlin DSL derleyicilerin desteği sonlandırılmıştır. , rota kullanan derleyicilerle (I85b42, b/188816479) değiştirilmelidir (I9f58f, b/188816479)

Hata Düzeltmeleri

  • DialogFragmentNavigator artık NavController için NavigatorState.pop() API sisteme geri vurarak iletişim kutusu kapatıldığında düğmenin veya düğmenin dışına tıklama yoluyla, NavController durumu her zaman Gezgin'in durumu. (I2ead9)
  • Navigasyon, aşağıdaki durumlarda artık ConcurrentModificationException vermiyor onDestinationChanged geri çağırması ile OnDestinationChangedListeners listesi değiştiriliyor. (Ib1707, b/188860458)

  • Güvenli Bağımsız Değişkenler, oluşturulmaya çalışılırken artık çökmüyor. yön özellikleri hakkında daha fazla bilgi edinin. (Id2416, b/188564435)

  • NavDestination'daki setId yöntemi artık düzgün bir şekilde not ediliyor @IdRes ile değiştirin; dolayısıyla yalnızca kaynak kimliklerini kabul eder. (I69b80)

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

Bağımlılık Güncellemesi

  • Güvenli Arg'ler artık Android Gradle Plugin 4.2.0'a bağlı. Bu durumda artık "applicationIdTextResource kullanılıyor" uyarısını almayacaksı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ı. Sürüm 2.4.0-alpha01 bu kaydetmeleri içerir.

Yeni Özellikler

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

Birden çok yığın

NavController, hedef yığınlarını yönetmekten, navigate() eklendiklerinde arka yığına hedef eklemekten ve popBackStack() çağrısı yaptığınızda ya da sistem geri düğmesini tetiklediğinde kaldırmaktan sorumludur. Mevcut NavOptions sınıfı ve gezinme grafiği XML'sindeki <action> girişleriyle entegrasyon, eski yığının kaydedilip geri yüklenmesini destekleyecek şekilde genişletildi. (b/80029773)

Bu değişiklik kapsamında, onNavDestinationSelected(), BottomNavigationView.setupWithNavController() ve NavigationView.setupWithNavController() NavigationUI yöntemleri artık aktarılmış hedeflerin durumunu otomatik olarak kaydedip geri yükleyerek kod değişikliği yapılmadan birden fazla arka yığını desteklemeyi amaçlamaktadır. Gezinmeyi Parçalarla kullanırken birden fazla yığınla entegrasyon sağlamak için bu yöntem önerilir. (Ie07ca)

Durumu kaydetmek ve geri yüklemek için kullanılan temel API'ler, çeşitli yüzeylerle gösterilir:

  • Gezinme XML'inde <action> öğesi artık app:popUpTo aracılığıyla açılan tüm hedeflerin durumunu kaydetmek ve app:destination olarak iletilen hedefle ilişkilendirilen durumu geri yüklemek için 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şturucu üzerinde 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 setRestoreState() ve ek saveState parametresi gerektiren setPopUpTo() için 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() için yapılan programatik çağrılar artık ek bir saveState parametresi içerebilir.

Her durumda NavController, ViewModel örnekleri kapsamındaki gezinme hedefi kapsamındakiler de dahil olmak üzere her bir NavBackStackEntry öğesinin durumunu kaydeder ve geri yükler. Navigator API'leri, kendi durumlarını kaydetmeyi ve geri yüklemeyi destekleyecek şekilde her bir Navigator özelliğini etkinleştirecek şekilde güncellendi.

Gezinme Oluşturmada composable hedefleri için kullanılan ComposeNavigator ve Parçalarla Navigasyon'da <fragment> hedefleri için kullanılan FragmentNavigator ve DynamicFragmentNavigator, yeni Navigator API'lerini kullanacak şekilde güncellenmiş, durumun kaydedilmesini ve geri yüklenmesini destekleyecektir.

Navigasyon Rotaları

Rota, bir hedefi benzersiz şekilde tanımlayan bir String'dir. Daha önce yalnızca Gezinme Yazma özelliğinde kullanılmış olsa da bu kavram, ilerleyen zamanlarda temel Gezinme API'lerinin bir parçası haline gelmiştir. Bu, Gezinme Kotlin DSL ile grafiğinizi oluştururken tam sayı kimliklerinin kullanılmasına bir alternatif sağlar. (b/172823546)

Eskiden yalnızca kimlik alan tüm API'ler artık String rotasını izleyen bir aşırı yüke sahip. Buna navigate(), popBackStack(), popUpTo() ve getBackStackEntry() dahildir.

Bunun API ile ilgili bazı etkileri oldu:

  • Kotlin DSL'deki popUpTo kotlin özelliği kullanımdan kaldırıldı ve popUpToId. (I59c73, b/172823546)
  • getStartDestination() API desteği sonlandırıldı / getStartDestinationId(). (I0887f, b/172823546)

Yazma Sihirbazı'nın önceki sürümlerinden Gezinme Oluşturma 2.4.0-alpha01 sürümüne geçen geliştiriciler için bu, uzantı yöntemlerinde yapılan aşağıdaki içe aktarma işlemlerinin artık gerekli olmadığı ve kaldırılması gerektiği 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 tarihinde route özelliğiyle değiştirildi. Bu sayede navBackStackEntry.destination.route öğesini doğrudan çağırabilirsiniz.

API Değişiklikleri

  • Tüm Navigasyon yapıları Kotlin'de yeniden yazıldı. Bu, genel anahtar kelimeler (NavType alt sınıf gibi) kullanan sınıfların null (boşluk) ayarını iyileştirdi. 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 eklemeyi destekliyor oluşturulan rapora birden çok farklı hedef gösterir. (I3ee0d, b/147913689)
  • DynamicNavHostFragment (Icd515, b/175222619) için fabrika işlevlerini ekleyin
  • Bir NavBackStackEntry öğesinin benzersiz kimliği artık herkese açık API'sinin bir parçası olarak kullanıma sunuldu. (Ie033a)
  • NamedNavArgument ürününün name ve argument alanları ve yapılandırma işlevleri artık herkese açık. (#174, b/181320559)
  • İlgili beste yerellerine NavBackStackEntry sağlayan yeni bir NavBackStackEntry#provideToCompositionLocals uzantısı kullanıma sunuldu. (#175, b/187229439)

Güvenli Bağımsız Değişkenler

  • Güvenli Bağımsız Değişkenler 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 Bağımsız Değişkenler, KotlinPoet 1.8.0 değişkenine bağlı olacak şekilde güncellendi. (#172, b/183990444)

Davranış Değişiklikleri

  • Navigasyon artık şunlara bağlı: Yaşam döngüsü 2.3.1 ve şu anda setGraph(), popBackStack(), navigateUp() ve navigate() olarak işaretlendi. NavBackStackEntry Lifecycle güncellenen, @MainThread olarak, Gezinme ana iş parçacığıyla hizalanıyor 2.3.0 Yaşam Döngüsü'nde yaptırım uygulanmaya başladı. (b/171125856)
  • Derin bağlantılardan enum bağımsız değişkenleri ayrıştırıldığında artık büyük/küçük harfe duyarlı değildir. Böylece, http://www.example.com/red gibi bir derin bağlantının, sıralama değeri RED değerine sahip olsa bile www.example.com/{color} derin bağlantısıyla eşleşmesi sağlanır. (#152, b/135857840)

Oluşturma Uyumluluğu

  • androidx.navigation:navigation-compose:2.4.0-alpha01 yalnızca Compose 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 özelleştirilebilir Aynı @Navigator.Name("dialog") kullanan gezinme araçları DialogFragmentNavigator olarak ayarlanır. (Ib1c2c, b/175979140)
  • NavigatorProvider#addNavigator işlevinin aynı örnekle tekrar tekrar çağrılmasının sorunlara neden olmaması için davranışı iyileştirildi. (#176, b/187443146)

Harici Katkılar

  • Her NavArgs sınıfı için bir fromSavedStateHandle() yöntemi oluşturan Güvenli Arg'ların oluşturduğu destek için simonschiller'a teşekkür ederiz. (#122, b/136967621)
  • Derin bağlantılardan alınan Enum bağımsız değişkenlerini büyük/küçük harfe duyarlı hale getirdiği 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 olacağı bir sorunu düzelttiğiniz için osipxd'ye teşekkür ederiz. (#153, b/184072811)
  • Güvenli Bağımsız değişkenleri KotlinPoet'e 1.8.0 bağlı olacak şekilde güncellediğiniz için tatocaster'a teşekkür ederiz. (#172, b/183990444)
  • NamedNavArgument ürününün name ve argument alanlarını ve yıkıcı işlevlerini herkese açık hale getirdiğiniz için jossiwolf'a teşekkür ederiz. (#174, b/181320559)
  • İlgili beste yerellerine NavBackStackEntry sağlayan yeni NavBackStackEntry#provideToCompositionLocals uzantısını sunduğunuz için jossiwolf'a teşekkür ederiz. (#175, b/187229439)
  • NavigatorProvider#addNavigator işlevinin aynı örnekle tekrar tekrar çağrılmasının soruna neden olmamasına yol açan davranışı iyileştirdiğiniz için jossiwolf'a teşekkür ederiz. (#176, b/187443146)

Sürüm 1.0.0-alpha10

7 Nisan 2021

androidx.navigation:navigation-compose:1.0.0-alpha10 yayınlandı. 1.0.0-alpha10 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • NavHost artık şuna aktarılacak bir Modifier kabul ediyor: hedef composable'ları sarmalayan composable container'ı seçeceğim. (I85aca, b/175125483)

Hata Düzeltmeleri

  • NavHost artık çalışıyor OnBackPressedDispatcherOwner bulunamasa bile NavHost öğesini önizlerken de aynı durum söz konusudur. (I7d8b4)
  • Oluşturma Gezinme Gezinmesi artık 2.3.5 Gezinmesine bağımlıdır ve NavHost hedefinde BackHandler kullanılırken karşılaşılan bir sorun düzeltilir. (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 kaydetmeleri içerir.

API Değişiklikleri

  • LocalViewModelStoreOwner.current artık şu sonucu döndürüyor: daha iyi belirlemek için null değer atanabilir ViewModelStoreOwner mevcut durumda ViewModelStoreOwner olup olmadığını bileşimi. ViewModelStoreOwner gerektiren API'ler, örneğin viewModel() ve NavHost olarak bir istisna olsa da (ViewModelStoreOwner ayarlanmamışsa) (Idf39a)

Hata Düzeltmeleri

  • Oluşturma bölümünde gezinme artık Gezinme 2.3.4 aynı ViewModelStore'u ayarlamaya ilişkin düzeltmeyi içeren nesnesini ifade eder. (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 kaydetmeleri içerir.

Yeni Özellikler

  • NavHost, artık LocalSavedStateRegistryOwner CompositionLocal öğesini bu hedefin NavBackStackEntry ile dolduruyor. Böylece, doğrudan SavedStateRegistry içine kaydedilen eyaletler kaydedilip hedefle birlikte geri yükleniyor. (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 kaydetmeleri 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 kaydetmeleri 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 kaydetmeleri içerir.

Oluşturma 1.0.0-alpha10 sürümüne bağlı olacak şekilde güncellendi.

Sürüm 1.0.0-alpha04

16 Aralık 2020

androidx.navigation:navigation-compose:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü bu kaydetmeleri 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Yapılandırma değişikliği veya işlem ölümü ve yeniden oluşturma işleminden sonra popBackStack() ve navigateUp() öğelerinin çalışmamasına neden olan sorun düzeltildi. (Icea47, b/173281473)
  • NavHost içindeki iç içe yerleştirilmiş 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ı. 1.0.0-alpha02 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Navigasyon oluşturma işlemi artık popUpTo kullanımı için NavOptions'ı destekliyor ve startsingleTop işlemlerini (If96c3, b/171468994) başlatın.
  • Oluşturma Gezinme menüsünde iç içe yerleştirilmiş grafikler oluşturmanıza olanak tanıyan kimlik DSL. (I1661d)
  • startDestination artık bir NavHost (Ie620e) parametreleri
  • Artık rotayı başlangıç olarak kullanarak bir grafik oluşturabilirsiniz bir NavHost composable dışındaki hedeften emin olun. (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 kaydetmeleri içerir.

Yeni Özellikler

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

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

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

Daha fazla bilgi için Oluşturma Gezinme rehberine bakın.

Sürüm 2.3.5

Sürüm 2.3.5

7 Nisan 2021

androidx.navigation:navigation-*:2.3.5 yayınlandı. 2.3.5 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • NavDeepLinkRequest ya da Uri kullanarak rotayı izlerken artık şunları yapabilirsiniz: Uri, action ve MIME türüne erişerek sonuçtaki hedefte Amacı KEY_DEEP_LINK_INTENT aracılığıyla bağımsız değişkenlerden almak, harici derin bağlantı için zaten kullanılabilen işlevleri yansıtır. (I975c3, b/181521877)

Hata Düzeltmeleri

  • Şu görevliye OnBackPressedCallbacks eklendi: Yaşam Döngüsü Sahibi olarak NavBackStackEntry artık düzgün şekilde müdahale ediyor Etkinlik Yaşam Döngüsü STOPPED ise, ardından STARTED (Iff94f, b/182284739)
  • Derin bağlantı alan adı 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ı olduğunu unutmayın. (#144, b/153829033)
  • Bir hedefte null olmayan birden fazla varsayılan bağımsız değişken olduğunda ve söz konusu hedefe giderken bu bağımsız değişkenlerin yalnızca bir alt kümesini geçersiz kıldığınızda meydana gelebilecek NullPointerException düzeltildi. (aosp/1644827)

Bağımlılık Güncellemeleri

  • Gezinme Güvenliği Args Gradle Eklentisi artık Kotlin Gradle Eklentisi 1.4.31'i temel alıyor. (aosp/1661058, b/181156413)

Harici Katkı

  • Derin bağlantı alan adı ayrıştırma işlemini büyük/küçük harfe duyarlı 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ı. Sürüm 2.3.4 bu kaydetmeleri içerir.

Yeni Özellikler

  • ReferenceType bağımsız değişkenleri artık derin bağlantı URI'sinin parçası olarak gönderildiğinde düzgün şekilde ayrıştırılabilir. Bu, hem işlenmemiş tam sayı değerini hem de 0x ön ekini taşıyan 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 tam sayı varsayılan değerlerini desteklemektedir. Böylece, 0.0 kullanımını zorunlu tutmak yerine android:defaultValue="0" değerini kullanabilirsiniz. (#117, b/173766247)

Hata Düzeltmeleri

  • Navigasyon’un dinamik özellikler için desteği kullanılırken takılı kalan yükleme ilerleme durumu düzeltildi. (Ib27a7, b/169636207)
  • setViewModelStore veya setLifecycleOwner aynı numarayla aranıyor Önceden ayarlanmış nesne artık işlemsiz olacak (Idf491, b/177825470)
  • Safe-Args artık uygun yöntemlere gizleme ek açıklamaları ekliyor yardımcı olur. (I8fbc5, b/179463137)

Harici Katkılar

  • ReferenceType bağımsız değişkenlerinin artık derin bağlantı URI'sinin parçası olarak gönderildiğinde düzgün şekilde ayrıştırılabilmesini sağlamak üzere pull isteği için JvmName teşekkür ederiz. (#127, b/179166693)
  • app:argType=”float” içeren bir bağımsız değişkende defaultValue uygulamasına izin vermek amacıyla pull isteği için teşekkürler tatocaster artık tam sayı varsayılan değerlerini desteklemektedir. (#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ı. Sürüm 2.3.3 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • NavBackStackEntry açılırken artık kilitlenme yok Lifecycle değeri CREATED kümesine taşınmadan önce. (Ie3ba3)
  • Bir 0 animasyon kaynağı değerine sahip etkinlik, ResourceNotFoundException. (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ı. Sürüm 2.3.2 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • NavigationUI işlevinde, onNavDestinationSelected ile <activity> hedefi kullanmanın Etkinliğe gidememesine neden olan regresyon düzeltildi. (I22e34, b/171364502)
  • navigation-dynamic-features-fragment ürününün, yeni yüklenen hedefe birden fazla kez gitmesine neden olan sorun düzeltildi. (aosp/1486056, b/169636207)
  • launchSingleTop kullanılırken varsayılan bağımsız değişkenlerin OnDestinationChangedListener örneklerine 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ı sorunu düzeltildi. (Ifc831)
  • Gezinme grafiğindeki son hedefi kaldıran bir popUpTo ile navigate() kullanıldığında, gezinme grafiğinin hemen kaldırılmaması ve arka yığından kaldırılmaması sorunu düzeltildi. (I910a3)
  • Gezinme SafeArgs artık KotlinPoet'un 1.7.2 sürümünü kullanıyor. Bu sürüm, Kotlin'in açık API modunu destekliyor. (I918b5)
  • NavHostFragment.findNavController(Fragment) artık Parça hiyerarşisi ve Parça'nın görünüm hiyerarşisinin mevcut denetimlerine ek olarak DialogFragment'ın kök dekorasyonu görünümünü de kontrol ediyor. Bu işlem, FragmentScenario ve Navigation.setViewNavController() ile Navigasyon'u 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ı. Sürüm 2.3.1 bu kaydetmeleri içerir.

Yeni Özellikler

  • Varsayılan Animator kaynakları, Gezinme Kullanıcı Arayüzüne eklendi ve varsayılan animasyon kaynaklarının üzerinde önerilmektedir. (b/167430145)
  • NavOptions artık karma kodunu geçersiz kılar ve eşittir yöntemlerini (b/161586466) geçersiz kılar
  • Gezinme artık "No destination with ID" (Kimlikli hedef yok) InvalidArgumentException içinde bulunan mevcut hedef sayesinde geliştirici hata ayıklama deneyimini iyileştirecek. (b/168311416)

Hata Düzeltmeleri

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

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

  • navigation-ui artık şuna bağlı Çekmece Düzeni 1.1.1, NavigationUI, çekmeceyi açabildiğinden emin olun. LOCK_MODE_LOCKED_CLOSED veya LOCK_MODE_LOCKED_OPEN. (b/162253907)
  • Güvenli argümanlar artık KotlinPoet 1.6.0'a bağlı (aosp/1435911)
  • Güvenli Bağımsız Değişkenler artık AGP 4.0.1'e (aosp/1442337) bağımlı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 kaydetmeleri içerir.

2.2.0'dan bu yana ö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 yönetir. Daha fazla bilgi için Özellik modülleriyle gezinme konusuna bakın.
  • Gezinme Testi: navigation-testing yapısı, mevcut 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 bölümüne bakın.
  • Sonuç Döndürme: Gezinme Geri yığınındaki her bir hedefle ilişkilendirilmiş NavBackStackEntry artık, belirli bir arka yığın girişiyle ilişkilendirilen küçük miktarlarda kaydedilmiş durumu depolamak için uygun bir SavedStateHandle ürününe erişmenize olanak tanıyor. Daha fazla bilgi için Sonuçları önceki Hedefe döndürme konusuna bakın.
  • Openable için NavigationUI desteği: NavigationUI ürününde DrawerLayout ürününün tüm kullanımları CustomView 1.1.0 içinde eklenen ve DrawerLayout 1.1.0 çekmecesinde DrawerLayout tarafından uygulanan daha genel Openable arayüzü ile değiştirildi.
  • Derin bağlantılarda işlem ve MIME türü desteği: Derin bağlantı, daha önce mevcut olan app:uri'nin yanı sıra app:action ve app:mimeType özelliklerini de destekleyecek şekilde genişletildi. NavController, artık yeni NavDeepLinkRequest sınıfı aracılığıyla bu alanların herhangi bir kombinasyonuyla 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ştirme desteği sunulmamaktadır. Söz konusu çalışma tamamlanana kadar, manifestinizdeki <nav-graph> öğesinden oluşturulan <intent-filter> öğeleri, <data> öğesinde veya özel <action> öğesinde mime türünüzü içermeyecektir. Manifest dosyanıza uygun bir <intent-filter> öğesini manuel olarak eklemeniz gerekir.

Sürüm 2.3.0-rc01

10 Haziran 2020

androidx.navigation:navigation-*:2.3.0-rc01 yayınlandı. Sürüm 2.3.0-rc01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Bağımsız değişken içermeyen bir hedef örneği, bağlı bağımsız değişkenlerle singleTop olan başka bir örnekle değiştirilirken NullPointerException düzeltildi. (b/158006669)
  • NavController tarafından bildirilen tüm destination is unknown istisnaları artık NavController durumunun belirlenmesine yardımcı olacak ek hata ayıklama bilgilerine sahip. (b/157764916)

Sürüm 2.3.0-beta01

20 Mayıs 2020

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

Hata Düzeltmeleri

  • İşlem sona erdikten sonra NavBackStackEntry öğesinin Lifecycle öğesinin düzgün şekilde güncellenmemesine neden olan sorun düzeltildi. (b/155218371)
  • setGraph() çağrısından önce kaydedilen OnDestinationChangedListener örnek artık işlem iptalinden sonra geri yüklenen hedefe düzgün şekilde gönderiliyor. (b/155218371)
  • singleTop kullanılırken NavBackStackEntry artık doğru şekilde bağımsız olarak güncellenir ve güncellenen bağımsız değişkenler tüm OnDestinationChangeListener örneklerine gönderilir. (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 kaydetmeleri içerir.)

Yeni Özellikler

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

API Değişiklikleri

  • Dinamik Gezinme hedefleri için Kotlin DSL desteği büyük ö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 kaydetmeleri içerir.

Yeni Özellikler

  • <include-dynamic> kullanan dinamik grafik şunları içerir için artık app:graphPackage belirtmeniz gerekmez. applicationId bölümüne bir noktadan sonra moduleName son eki eklenerek varsayılan bir değer kullanılır. graphPackage öğenizi özelleştirmeniz gerekiyorsa artık ${applicationId} yer tutucusu destekleniyor. (b/152696768)
  • Gezinme Grafiği Kotlin DSL, artık işlemler için bir defaultArguments Map gösteriyor. Bu, Gezinme XML dosyalarındaki <action> öğelerinde varsayılan değerleri ayarlama yeteneğini yansıtıyor. (b/150345605)

Hata Düzeltmeleri

  • Gezinme 2.2.2'den: Etkinliğinizde birden fazla NavHostFragment örneği olduğunda grafiğinizin başlangıç hedefine derin bağlantı oluştururken IllegalStateException sorunu 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 kaydetmeleri içerir.

Yeni Özellikler

  • Navigasyon 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 oluşturucu kalıbını kullanmaz ve doğrudan oluşturulabilir. (aosp/1253671)
  • DynamicActivityNavigator artık oluşturucusunda Activity yerine Context alıyor. (aosp/1250252)

Hata Düzeltmeleri

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

Bağımlılık Güncellemeleri

  • Gezinme Dinamik Özellikler yapıları artık Play Core 1.6.5 sürümünü kullanıyor. (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 kaydetmeleri içerir.

API Değişiklikleri

  • Somut DrawerLayout sınıfına güvenmek yerine, AppBarConfiguration artık CustomView 1.1.0-alpha02'da sunulan Openable arayüzünü (yeni görünüm DrawerLayout, DrawerLayout 1.1.0-alpha04 itibarıyla geçerlidir ve NavigationUI ile Openable özel uygulamalarını kullanmanıza olanak tanır. (b/129030452)

Hata Düzeltmeleri

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

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

  • Navigasyon, Core 1.2.0 sürümüne olan bağımlılığını geri aldı. Artık Navigasyon, Core 1.2.0 içindeki yeni API'lere bağımlı olmadığında geliştiricileri daha yeni bir bağımlılığa geçmeye zorlamak için Çekirdek 1.1.0'e ihtiyaç duyar.

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 kaydetmeleri içerir.

Yeni Özellikler

  • NavBackStackEntry artık belirli bir arka yığın girişiyle ilişkilendirilmesi gereken az miktarda kayıtlı durumu depolamak için uygun bir SavedStateHandle'e erişmenize olanak tanıyor. Örnek kullanım alanı için 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() kolaylık yöntemleri eklendi. (b/79672220)

Hata Düzeltmeleri

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

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

  • Navigasyon artık Temel 1.2.0 sürümüne bağımlıdır.

Sürüm 2.3.0-alpha01

5 Şubat 2020

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

Yeni özellikler

  • Yeni navigation-testing yapısı, TestNavHostController sınıfı sağlar. Bu sınıf, Navigasyon'u test ederken gezinme işlemlerinden sonra geçerli hedefi ayarlamanıza ve geri yığını doğrulamanıza olanak tanıyan bir NavController modeli 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 gezinme grafiklerinin tamamını (<include-dynamic> üzerinden) dahil etmenize olanak tanır. Böylece, bu hedeflere giderken isteğe bağlı özellik modüllerini sorunsuz bir şekilde yükleyebilirsiniz. Daha fazla bilgi için Özellik modülleriyle gezinme konusuna bakın. (b/132170186)

Hata düzeltmeleri

  • Gezinme 2.2.1'den: Sorgu parametresi olmayan derin bağlantılar, artık sorgu parametrelerini sondaki {argument} öğelerine eklemek veya derin bağlantıyla eşleşmemek yerine doğru şekilde yoksaymaktadır. (b/147447512)
  • 2.2.1 gezinme menüsünden: DrawerArrowDrawable için navigation-ui ProGuard kuralları, android.enableJetifier=true değerinin gerekli olmamasını sağlayacak şekilde güncellendi. (b/147610424)
  • 2.2.1 gezinme bölümünden: navigation-common-ktx modülü artık navigation-runtime-ktx ile aynı manifest paket adını paylaşmak yerine benzersiz bir manifest paket adına sahip. (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ı. Sürüm 2.2.2 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Etkinliğinizde birden fazla NavHostFragment örneği olduğunda grafiğinizin başlangıç hedefine derin bağlantı oluştururken ortaya çıkan IllegalStateException düzeltildi. (b/147378752)
  • NavigationUI artık boş etiketleri (ör. android:label=”” içeren bir hedef) yoksaymıyor ve başlığı boş bir dizeye doğru şekilde ayarlıyor. Bu özellik daha önce Gezinme 2.3.0-alpha04 sürümünde kullanıma sunulmuştu. (b/148679860)
  • navigation-common-ktx ProGuard kuralları artık doğru bir şekilde, tüm NavArgs örnekleri yerine kullanılan NavArgs sınıflarını tutuyor. Bu özellik daha önce Gezinme 2.3.0-alpha03 sürümünde kullanıma sunulmuştu. (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 kaydetmeleri içerir.

Hata düzeltmeleri

  • Sorgu parametresi olmayan derin bağlantılar, artık 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 gerekliliğinin gerekmediğinden emin olacak şekilde güncellendi. (b/147610424)
  • navigation-common-ktx modülü artık navigation-runtime-ktx ile aynı manifest paket adını paylaşmak yerine 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ı. 2.2.0 sürümü bu kaydetmeleri içerir.

2.1.0'dan bu yana önemli değişiklikler

  • NavBackStackEntry: Artık NavController.getBackStackEntry() öğesini çağırarak arka yığında bir hedefin veya gezinme grafiğinin kimliğini iletebilirsiniz. Döndürülen NavBackStackEntry, ilgili hedefi başlatmak için kullanılan bağımsız değişkenlerin yanı sıra, Gezinme odaklı bir LifecycleOwner, ViewModelStoreOwner (NavController.getViewModelStoreOwner() tarafından döndürülen bağımsız değişken) 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() veya ViewModelProvider oluşturucusu kullanılırken kullanılan varsayılan fabrika oldu.
  • Derin Bağlantılar İçin Sorgu Parametresi Desteği: Sorgu parametreleri içeren derin bağlantılar artık yeniden sıralanmış sorgu parametrelerini destekliyor; Artık derin bağlantılar eşleştirilirken varsayılan değere sahip veya boş değer içeren bağımsız değişkenler isteğe bağlıdır.
  • İyileştirilmiş Animasyon Desteği: NavHostFragment artık Parça 1.2.0'dan FragmentContainerView değerini kullanıyor, animasyon z sıralama sorunlarını ve Parçalara gönderilen pencere iç içe aktarmalarını düzeltiyor.

Sürüm 2.2.0-rc04

18 Aralık 2019

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

Hata düzeltmeleri

  • navigation-ui tarafından kullanılan varsayılan karartma animasyonları, Parça 1.2.0-rc04 içindeki ayarlanmış şeffaf kararma 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ı. Sürüm 2.2.0-rc03 bu kaydetmeleri içerir.

Hata düzeltmeleri

  • Son yol bağımsız değişkenindeki birden fazla karakterin ayrıştırılmasını engelleyen sorgu parametreleri ve yolun son bölümü olarak bir bağımsız değişken kullanılırken derin bağlantı ayrıştırmayla ilgili sorun düzeltildi. (b/144554689)
  • İsteğe bağlı parametrelerin null yerine "@null" almasına yol açan derin bağlantı ayrıştırma sorunu 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 Yaşam Döngüsü 2.2.0-rc03, Yaşam Döngüsü ViewModel SavedState 1.0.0-rc03, 1.1.0-rc03 Etkinliği ve 1.2.0-rc03 Parçasına bağımlı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 kaydetmeleri içerir.

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

  • Navigasyon artık androidx.lifecycle (2.2.0-rc02) sürümüne 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 hiçbir değişiklik yapılmadan yayınlandı. Sürüm 2.2.0-rc01 bu kaydetmeleri içerir.

Sürüm 2.2.0-beta01

9 Ekim 2019

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

Yeni özellikler

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

Davranış değişiklikleri

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

Hata düzeltmeleri

  • Sorgu parametreleri de belirtilmişse derin bağlantının 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 ekstra olmadığında daha iyi bir hata mesajı veriyor. (b/141408999)
  • Safe Arg'ler tarafından oluşturulan Directions Java sınıfı artık varsayılan değerleri içeriyor. (b/141099045)
  • Safe Arg'ler tarafından oluşturulan Args Java sınıfı artık varsayılan değerleri içeriyor. (b/140123727)
  • Bir Toolbar kullanılırken NavigationUI, iki üst düzey hedef arasında geçiş yaparken artık metin değişikliğini canlandırmaz. (b/140848160)

Sürüm 2.2.0-alpha03

18 Eylül 2019

androidx.navigation:navigation-*:2.2.0-alpha03 yayınlandı. 2.2.0-alpha03 sürümü bu kaydetmeleri içerir.

Davranış değişiklikleri

  • setGraph arandıktan sonra setViewModelStore() arandığında artık IllegalStateException ile sonuçlanıyor. Tüm NavBackStackEntry örneklerinin ViewModel örnekleri için tutarlı bir depolamaya sahip olmasını sağlamak amacıyla bu değer, ilk kurulumun bir parçası olarak her zaman NavHost tarafından ayarlanmalıdır. (aosp/1111821)

Hata düzeltmeleri

  • Kapsamında ViewModelStore örnekleri olan birden fazla farklı gezinme grafiğine ekli ViewModel örnekleri kullanılırken 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 kaydetmelere buradan ulaşabilirsiniz.

Yeni özellikler

  • Sorgu parametreleri içeren derin bağlantılar artık yeniden sıralanmış sorgu parametrelerini destekliyor; Artık derin bağlantılar eşleştirilirken varsayılan değere sahip veya boş değer içeren bağımsız değişkenler isteğe bağlıdır. (b/133273839)
  • Artık NavController.getBackStackEntry() öğesini çağırarak arka yığında bir hedefin veya gezinme grafiğinin kimliğini iletebilirsiniz. Döndürülen NavBackStackEntry, ilgili hedefi başlatmak için kullanılan bağımsız değişkenlerin yanı sıra, Gezinme odaklı bir LifecycleOwner, ViewModelStoreOwner (NavController.getViewModelStoreOwner() tarafından döndürülen bağımsız değişken) ve SavedStateRegistryOwner sağlar. (aosp/1101691, aosp/1101710)

Hata düzeltmeleri

  • ViewPager2 öğesine NavHostFragment ekleme işleminin IllegalArgumentException ile başarısız olmasına neden olan sorun düzeltildi. (b/133640271)
  • NavInflater artık getResourceName() numaralı telefonu gereksiz yere aramaktan kaçınarak enflasyon süresini %40'a varan oranda 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 kaydetmelere buradan ulaşabilirsiniz.

Yeni özellikler

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

API değişiklikleri

  • 2.1.0-rc01 gezinme bölümünden: 2.1.0-alpha02 ürününde kullanıma sunulan ve NavController itibarıyla desteği sonlandırılmış getViewModelStore() API kaldırıldı. (aosp/1091021)

Hata düzeltmeleri

  • NavHostFragment artık FragmentContainerView kullanarak animasyonun z sıralama sorunlarını ve Parçalara gönderilen pencere içe aktarmalarını 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 kaydetmelere buradan ulaşabilirsiniz.

2.0.0'dan bu yana önemli değişiklikler

  • ViewModel'leri bir gezinme grafiğinde kapsama: Artık -ktx kitaplıklarını veya NavController ürününe eklenen getViewModelStoreOwner() API'sini kullanarak Kotlin kullanıcıları için by navGraphViewModels() özellik yetkilendirmesini kullanarak gezinme grafiği düzeyinde kapsama sahip ViewModel'ler oluşturabilirsiniz. Daha fazla bilgi için Hedefler arasında kullanıcı arayüzüyle ilgili verileri paylaşma bölümüne bakın.
  • İletişim kutusu hedefleri: Artık onlara navigate koyduğunuzda DialogFragment gösterecek <dialog> hedefler oluşturabilirsiniz. NavHostFragment varsayılan olarak iletişim kutusu hedeflerini destekler. Daha fazla bilgi için DialogFragment'tan hedef oluşturma bölümüne bakın.
  • Uri ile gezinme: Artık bir hedefe eklediğiniz <deepLink> öğeyi kullanan Uri kullanarak navigate yapabilirsiniz. Daha fazla bilgi için Uri kullanarak gezinme konusuna bakın.
  • NavHostController: Özellikle özel bir NavHost oluşturmak için kullanılan API'ler NavHostController hizmetine taşındı. Böylece uygulamalar, NavController API'lerini barındıran LifecycleOwner, OnBackPressedDispatcher ve ViewModelStore barındıran sitelere bağlama olanağına sahip oldu.

Sürüm 2.1.0-rc01

7 Ağustos 2019

androidx.navigation:navigation-*:2.1.0-rc01 yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

API değişiklikleri

  • NavController tarihinde kullanıma sunulan ve 2.1.0-alpha02 kapsamındaki desteği sonlandırılan 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 kaydetmelere buradan ulaşabilirsiniz.

Hata düzeltmeleri

  • 2.1.0-beta01 yılında kullanıma sunulan kasıtsız 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 kaydetmelere buradan ulaşabilirsiniz.

Yeni özellikler

  • NavigationUI artık Toolbar veya CollapsingToolbarLayout ile setupWithNavController() kullanılırken Yukarı düğmesinin kaldırılması animasyonu gösteriyor. (b/131403621)

Hata düzeltmeleri

  • findNavController() ile aynı kapsayıcıya sahip birden çok NavHostFragment kullanılırken zamanlama sorunu düzeltildi. (b/136021571)

Sürüm 2.1.0-alpha06

2 Temmuz 2019

androidx.navigation:*:2.1.0-alpha06 yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Yeni özellikler

  • NavHostFragment tarafından kullanılan app:navGraph özelliği artık navigation-runtime yapısına taşındı. XML aracılığıyla eklenebilen özel gezginler, Gezinme Editörü'nün Ana Makine paneli ile entegrasyon sağlamak için bu özelliği kullanmalıdır. (b/133880955)

API değişiklikleri

  • NavController işletim sisteminde getViewModelStore() API desteği sonlandırılarak yerine ViewModelStoreOwner döndüren yeni getViewModelStoreOwner() yöntemi kullanılmaya başlandı. (aosp/987010)
  • <dialog> hedefleri gibi kayan pencere hedeflerinin uygulanması, artık tüm <dialog> hedeflerinin uyguladığı bir işaretçi arayüzü (FloatingWindow) şeklinde genelleştirildi. Üst uygulama çubuğuyla etkileşim için NavigationUI yöntemleri artık FloatingWindow hedeflerini yoksayıyor. (b/133600763)

Davranış değişiklikleri

  • Navigasyon artık durumunu, bir <dialog> hedefi kullanılırken ekranda görünen durumla senkronize bir şekilde tutar. Sonuç olarak, <fragment> hedefi gibi iletişim kutusu olmayan ve etkinlik dışı bir hedefe gittiğinizde Navigasyon artık <dialog> hedeflerini otomatik olarak gösteriyor. (b/134089818)

Hata düzeltmeleri

  • Gezinme artık derin bağlantı işlenirken etkinlik yeniden oluşturulurken meydana gelen animasyonu engelleyerek görsel bir flash'ı düzeltiyor. (b/130362979)
  • İlk parça eklenirken bir Parça patlatı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 kaydetmelere buradan ulaşabilirsiniz.

API değişiklikleri

  • NavController alan adındaki ana makineyle ilgili API'ler yeniden adlandırıldı ve NavController adlı yeni bir alt sınıfa taşındı: NavHostController. (aosp/966091)
  • NavController setHostOnBackPressedDispatcherOwner() yöntemi, NavHostController ile ilişkili setOnBackPressedDispatcher() yöntemiyle değiştirildi ve artık çağrı yapmadan ö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 gittikten 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 kaydetmelere buradan ulaşabilirsiniz.

Hata düzeltmeleri

  • NavHostFragment, sistemin Geri düğmesi etkinliklerine müdahale ederken app:defaultNavHost politikasını doğru bir şekilde gözeterek Gezinme 2.1.0-alpha03'deki regresyonu düzeltir. b/132077777
  • DialogFragmentNavigator artık popBackStack() ve navigateUp() işlemlerini doğru şekilde işliyor. b/132576764
  • İç içe yerleştirilmiş grafikler arasında sürekli olarak gezinmeye neden olan 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 kaydetmelere buradan ulaşabilirsiniz.

Bilinen Sorunlar

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

Yeni özellikler

  • Artık <dialog> tane hedef oluşturabilirsiniz. Bu hedefler için navigate işlemini gerçekleştirdiğinizde DialogFragment gösterilir. NavHostFragment varsayılan olarak iletişim kutusu hedeflerini destekler. b/80267254
  • navigate öğesini bir kaynak kimliği veya NavDirections örneğiyle çağırmanın yanı sıra artık doğru hedefe gitmek için bir hedefe eklediğiniz <deepLink> öğesini kullanan bir Uri üzerinden de 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ıyla eşleşecek şekilde 400 ms'den 220 ms'ye yükseltildi. b/130055522

API değişiklikleri

  • NavHostFragment için createFragmentNavigator() yöntemi kullanımdan kaldırıldı ve işlevi, NavHostFragment alt sınıfı oluştururken özel gezginler ekleme konusunda doğru giriş noktası olduğunu netleştirmek için yeni onCreateNavController() yöntemine taşındı. b/122802849
  • Belirli bir Uri öğesinin, söz konusu hedef veya NavGraph olması durumunda gezinme grafiğindeki herhangi bir hedef tarafından işlenip işlenemeyeceğini kontrol edebilmeniz için NavDestination bölümüne bir hasDeepLink() yöntemi eklendi. b/117437718

Hata düzeltmeleri

  • Varsayılan bağımsız değişkenler artık OnDestinationChangedListener örneklerine doğru şekilde iletiliyor. b/130630686
  • NavHostFragment artık OnBackPressedDispatcher kullanarak sistemdeki Geri etkinliklere müdahale ediyor. Böylece, bir Parçaya döndüğünüzde Parça yaşam döngüsü yöntemlerinde koşullu gezinme yaparken oluşan bir sorun düzeltiliyor. b/111598096
  • Güvenli Bağımsız Değişkenler için, belirtilmemiş app:argType içeren bir android:defaultValue=”@null”, artık string bağımsız değişkeni olarak doğru şekilde tahmin ediliyor. b/129629192

Sürüm 2.1.0-alpha02

3 Nisan 2019

androidx.navigation:*:2.1.0-alpha02 yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Yeni özellikler

  • Artık Kotlin kullanıcıları için by navGraphViewModels() mülk yetkisi ile veya NavController ürününe eklenen getViewModelStore() API'yi kullanarak gezinme grafiği düzeyinde kapsama sahip ViewModel'ler oluşturabilirsiniz. b/111614463

API değişiklikleri

  • Artık eşleşen paket adını sınırlandırmak için <activity> hedefine app:targetPackage ekleyebilirsiniz. Paketi kendi uygulama kimliğinizle kısıtlamak için app:targetPackage="${applicationId}" değerini destekler. b/110975456

Hata düzeltmeleri

  • <activity> hedefleri için android:name artık enflasyon zamanında bir Sınıf olarak ayrıştırılmıyor. Bu durum, dinamik özellikler kullanılırken ClassNotFoundExceptions durumunu engelliyor. b/124538597

Sürüm 2.1.0-alpha01

19 Mart 2019

Bu, 2.1.0 gezinmesinin 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. Bu sürüm, androidx.legacy:legacy-support-core-utils:1.0.0 bağımlılığı. b/128632612

API Değişiklikleri

  • Yeni bir Navigation.createNavigateOnClickListener(NavDirections) yöntemi işlevi, kaynak kimliği ve paket. b/127631752
  • FragmentNavigator.instantiateFragment artık kullanımdan kaldırıldı. Varsayılan uygulamasında artık Parçalar örneklendirmek için FragmentFactory kullanılıyor. b/119054429

Hata Düzeltmeleri

  • Gezinme, ekli bağımsız değişkenler olduğunda artık null Bundle göndermiyor için düzeltilerek android:defaultValue="@null" kullanılırken sorun gideriliyor. b/128531879
  • Güvenli argümanlar artık KotlinPoet 1.1.0'a bağlı olduğundan çok uzun paket isimleri. b/123654948

Sürüm 2.0.0

Sürüm 2.0.0

14 Mart 2019

2.0.0-rc02 tarihinden itibaren değişiklik yapılmadan 2.0.0 gezinmesi yayınlandı.

Sürüm 2.0.0-rc02

6 Mart 2019

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

2.0.0-rc02'nin davranışı, Gezinme 1.0.0-rc02 davranışıyla aynıdır. 1.0.0-rc02 sürümünden güncellenmek için kodunuzda herhangi bir değişiklik yapmanız gerekmez. bağımlılıklarınızı güncellemenin yanı sıra bağımlılıkları konuşacağız.

Projenizde 2.X sürümlerini kullanmak için AndroidX'e taşındı: Gezinme. Navigasyon 1.0 kararlı sürümü, Destek kullanan son sürüm olacaktır Kitaplık bağımlılıkları; gelecekteki tüm geliştirmelerde, proje yönetiminin AndroidX ve 2.0 kararlı sürümünü temel alır.

AndroidX Öncesi Bağımlılıkları

Navigasyon'un AndroidX öncesi sürümleri için şu bağımlılıkları dahil edin:

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ızda classpath'i takip ediyor

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-rc02 tarihinden itibaren değişiklik yapılmadan 1.0.0 gezinmesi 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 çeşitli hata düzeltmelerini içerir.

Hata Düzeltmeleri

  • Kök grafikte popBackStack() değerinin yoksayılmasına neden olan sorun düzeltildi kimliği yoktu b/126251695
  • navigateUp() artık uygulamanızın görevine geri dönme işlemini doğru şekilde gerçekleştiriyor FLAG_ACTIVITY_NEW_TASK olmadan bir derin bağlantı işlendikten sonra çağrıldığında b/126082008
  • ActivityNavigator.applyPopAnimationsToPendingTransition ile ilgili bir sorun düzeltildi doğru pop çıkış animasyonu uygulanmıyor b/126237567
  • Güvenli Arg'ler tarafından oluşturulan Kotlin kodu artık Kotlin anahtar kelimelerinden düzgün şekilde kaçıyor R sınıfıyla ilişkili paket adında in ve fun gibi). b/126020455

Sürüm 1.0.0-rc01

21 Şubat 2019

Bu, Navigation'ın 1.0.0 kararlı sürümü için bir sürüm adayıdır. Bu sürümünde bir hata düzeltmesi bulunuyor.

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çok küçük geliştirme ve önemli hata düzeltmesi içerir.

Yeni Özellikler

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

Davranış değişiklikleri

  • Tam derin bağlantı eşlemeleri artık .* veya bağımsız değişken eşleşir. b/123969518

Hata Düzeltmeleri

  • popBackStack() ve navigateUp artık pop-up işlemi gerçekleştirirken doğru şekilde false döndürüyor en son hedef URL'dir. Bu regresyonu düzelterek, 1.0.0-beta01 içinde. b/123933201
  • Navigasyon artık şu öğenin geri yüklenmesi sırasında ClassLoader cihazını doğru bir şekilde ayarlıyor: Böylece, örneğin şurada özel sınıfları kullanırken sorunlardan kaçınmış olursunuz: Navigator kayıtlı durumda veya NavDestination öğesine gönderilen bağımsız değişkenlerde. b/123893858
  • Güvenli args tarafından oluşturulan NavArgs sınıfları artık bir Kayıtlı örnek durumundan Parcelable[] bağımsız değişkeni. b/123963545
  • Güvenli Bağımsız Değişkenler artık gereksiz oluşturulan Kotlin sınıflarını düzgün şekilde temizliyor. b/124120883

Sürüm 1.0.0-beta01

4 Şubat 2019

Bu, Navigasyon'un ilk beta sürümüdür; Ayrıca, Navigasyon Herhangi bir değişiklik olmadığı sürece API'nin bir sonraki sürüme kadar kararlı kalması beklenir. çok önemlidir. Bu sürüm, bazı hata düzeltmeleri ve davranış değişiklikleri içerir.

Davranış değişiklikleri

  • Gezinme artık bağımsız değişkenin varsayılan değerlerinin aynı şekilde ele alınmasını sağlıyor güvenli argümanlarla çalışma zamanında ve Güvenli Bağımsız Değişkenler üzerinden. Sonuç olarak, yalnızca app:argType="reference", başka bir kaynağa ait varsayılan değer noktasına sahip olabilir (örneğin, @color/colorPrimary). Varsayılan referans değeri kullanılmaya çalışılıyor değeri farklı bir app:argType olduğunda, XML'i ayrıştırır. b/123551990
  • Güvenli argümanlar artık Android Gradle Plugin 3.3.0'a bağlı aosp/888413
  • Güvenli argümanlar artık Kotlin 1.3.20'ye bağlı aosp/888414

Hata Düzeltmeleri

  • Güvenli Bağımsız Değişkenler artık tüm sürümlerdeki kitaplık ve özellik modüllerinde kullanılabilir hoş geldiniz. b/121304903
  • Tek bir popBackStack() işleminin şu şekilde olmasına neden olacak regresyon düzeltildi: bir hedefin tüm kopyalarını arkaya göndermek yerine grubun en üstünden tek bir hedefe ulaşma olanağı tanır. b/123552990
  • FragmentNavigator durumunun senkronizasyonunun iptal edilmesine neden olan sorun düzeltildi durumu NavController olur. Bu durumda IllegalStateException geri yüklenmeye çalışılıyor. b/123803044
  • NavigationUI geri okunun çalışmamasına yol açan bir sorun düzeltildi kod karartma ile ProGuard kullanılırken görünür. b/123449431
  • Güvenli Bağımsız Değişkenler tarafından oluşturulan kod artık bir app:argType kullanılarak düzgün şekilde işleniyor. .OuterClass$InnerClass biçiminde statik bir iç sınıfa işaret eder. b/123736741
  • Güvenli Bağımsız Değişkenler tarafından oluşturulan Java kodu artık global işlemleri düzgün şekilde işliyor iç içe yerleştirilmiş hedefler var. b/123347762

Sürüm 1.0.0-alpha11

23 Ocak 2019

Bu, Güvenli Bağımsız değişkenler ile ilgili bir sorunu düzelten bir 1.0.0-alpha10 düzeltme sürümüdür.

Hata Düzeltmeleri

  • Güvenli Bağımsız Değişkenlerin Yol Tarifi sınıfını içe aktaramaması sorunu düzeltildi genel işlemlerle ilişkilidir. b/123307342

Sürüm 1.0.0-alpha10

23 Ocak 2019

Bilinen Sorunlar

  • Güvenli Bağımsız Değişkenler, genel işlemlerle ilişkili Yol Tarifi sınıfını içe aktaramıyor. b/123307342

Bu sürüm, zarar veren API değişikliklerini içeriyor; lütfen aşağıdaki Zarar veren Değişiklikler bölümüne bakın.

Yeni Özellikler

  • Kotlin kullanıcıları artık by navArgs() mülkü için yetkiyi gecikmeli olarak kullanabilir Activity içinde oluşturulan Güvenli Bağımsız Değişkenler için NavArgs sınıfına referans al veya Fragment. b/122603367
  • Güvenli Bağımsız Değişkenler artık androidx.navigation.safeargs.kotlin eklentisi. Kotlin kodu, yalnızca Kotlin modülleri için temel alınan, varsayılan bağımsız değişkenleri ve hâlâ kullanılabilen oluşturucu kalıbına göre sabit sınıflar önceki androidx.navigation.safeargs eklentisi. b/110263087

Davranış Değişiklikleri

  • Eşleşen derin bağlantılar artık, en çok ziyaret edilen en eşleşen bağımsız değişkenleri girin. b/118393029
  • NavController üzerinde setGraph() çağrısı yapıldığında arkadaki yığın sıfırlanacak. b/111450672
  • Bilinmeyen derin bağlantılar artık IllegalStateException tetiklemez, ancak yoksayıldı, iç içe yerleştirilmiş veya birden fazla NavHostFragment ile ilgili sorunlar düzeltildi. b/121340440

Çarpıcı Değişiklikler

  • Şunun için NavOptions.applyPopAnimationsToPendingTransition() yöntemi: Bir Etkinliğe pop animasyonları uygulama özelliği ActivityNavigator klasörüne taşındı. b/122413117
  • Güvenli Bağımsız Değişkenler artık bağımsız değişkenlerdir. Oluşturulan NavDirections'larda bağımsız değişken olmayan yöntemlerin dönüş türü sınıf artık NavDirections. b/123233147
  • Güvenli Arg'ler tarafından oluşturulan Yol Tarifi sınıflarının artık herkese açık oluşturucusu yok - yalnızca oluşturulan statik yöntemlerle etkileşim kurmanız gerekir. b/123031660
  • Güvenli arg'lar tarafından oluşturulan NavDirections sınıf artık herkese açık değil oluşturucusu ile oluşturulur; yalnızca oluşturulan Yol Tarifi sınıflarını gösterir. b/122963206
  • NavDirections. dakikada: Bundle getArguments() artık işaretlendi @Nullable yerine @NonNull olarak. b/123243957

Hata Düzeltmeleri

  • NavDeepLinkBuilder artık aynı anda birden fazla öğeyi doğru şekilde işliyor İlettiğiniz bağımsız değişkenleri kullanarak aynı hedefe PendingIntents bir teste tabi tutulmasıdır. b/120042732
  • NavController, şu durumlarda artık popBackStack() işlemini doğru şekilde işliyor: iç içe yerleştirilmiş bir NavHostFragment veya arka yığını olan başka bir alt Parçalar kullanarak. b/122770335
  • NavigationUI artık Yukarı düğmesinin içerik açıklamasını doğru şekilde ayarlıyor. b/120395362
  • Güvenli Bağımsız değişkenler tarafından oluşturulan Yol Tarifi sınıfları artık genel işlemleri doğru şekilde gerçekleştiriyor bir hedefteki işlemle aynı kimliğe sahip olan uygulamalardır. b/122962504
  • Güvenli Bağımsız Değişkenlerin oluşturduğu NavDirections sınıf artık doğru şekilde eşit equals() doğru döndürdüğünde hashCode() değerleri. b/123043662
  • FragmentNavigator artık daha iyi hata mesajı veriyor: NavHostFragment üzerinde özel FragmentTransactions yap FragmentManager. Her zaman getChildFragmentManager() kullanmalısınız. b/112927148

Sürüm 1.0.0-alpha09

18 Aralık 2018

Bu sürüm, zarar veren API değişikliklerini içeriyor; lütfen aşağıdaki Zarar veren Değişiklikler bölümüne bakın.

Bu android.arch.navigation:navigation-testing yapı. Projenin yaşam döngüsünün NavController dahili testi için faydalı olacaktır. NavController örneğiyle alay etme gibi alternatif test stratejileri kullanarak doğru navigate() çağrılarının yapıldığını doğrulayın. Bu Bu yaklaşım AndroidDevSummit 2018'de Tek Etkinlik konuşması özel olarak test etmeyle ilgili ek belgeler üzerinde Navigasyonu başlatıyor.

Yeni Özellikler

  • menuCategory="secondary" içeren MenuItem öğeleri artık daha sonra öne çıkmayacak veya yığın NavigationUI yöntemleriyle kullanıldığında. b/120104424
  • AppBarConfiguration artık yedek ayarlamanıza izin veriyor OnNavigateUpListener navController.navigateUp() döndüğünde çağrılacak olan örnek false. b/79993862 b/120690961

Çarpıcı Değişiklikler

  • argType="reference" ile bir <argument> kullanılırken Navigasyon artık kullanılamaz referansı ayrıştırır; bunun yerine ham kaynak kimliğini sağlar. b/111736515
  • onNavDestinationSelected() artık varsayılan olarak gezinme grafiğinizin başlangıç konumuna geri dönüyor ve setup yöntemleriyle tutarlı olmalarını sağlar. Ekle Arka yığının patlamasını önlemek için MenuItem cihazınıza menuCategory="secondary". aosp/852869
  • Oluşturulan Args sınıflarının fromBundle() yöntemleri artık boş olmayan bir değer alıyor Null değer atanabilen bir Bundle yerine Bundle aosp/845616

Hata Düzeltmeleri

  • Bağımsız değişkenler artık derin bağlantılardan doğru argType olarak ayrıştırılıyor her zaman dizeler yerine b/110273284
  • Gezinme 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ümlerle uyumlu. b/119662045

Sürüm 1.0.0-alpha08

6 Aralık 2018

Bu sürüm, zarar veren API değişikliklerini içeriyor; lütfen aşağıdaki Zarar veren Değişiklikler bölümüne bakın.

Yeni Özellikler

  • Hedef etiketleri, NavigationUI yöntemlerle kullanıldığında artık otomatik olarak android:label içindeki {argName} örneği doğru bağımsız değişkenle değiştirin b/80267266
  • Gezinme artık Destek Kitaplığı 28.0.0 sürümüne bağlıdır b/120293333

Çarpıcı Değişiklikler

  • OnNavigatedListener, OnDestinationChangedListener olarak yeniden adlandırıldı b/118670572
  • OnDestinationChangedListener artık Bundle bağımsız değişkeni de iletiyor aosp/837142
  • app:clearTask ve app:launchDocument özellikleri ve bunlarla ilişkilendirilmiş yöntem kaldırıldı. Aşağıdaki işlemler için grafiğinizin köküyle app:popUpTo kullanın: arka yığınınızdaki tüm hedefleri kaldırın. b/119628354
  • ActivityNavigator.Extras artık Builder kalıbını kullanıyor ve tüm Intent.FLAG_ACTIVITY_ işaretlerini ayarla aosp/828140
  • NavController.onHandleDeepLink, handleDeepLink olarak yeniden adlandırıldı aosp/836063
  • Alt sınıflandırmaya uygun olmayan birçok sınıf ve yöntem, örneğin NavOptions, NavInflater, NavDeepLinkBuilder ve AppBarConfiguration, final yapıldı aosp/835681
  • Desteği sonlandırılan NavHostFragment.setGraph() yöntemi kaldırıldı aosp/835684
  • Desteği sonlandırılan NavigationUI.navigateUp(DrawerLayout, NavController) yöntemi kaldırıldı. aosp/835684
  • Parça oluşturma işlemi FragmentNavigator hizmetine taşındı. Bu sayede kolayca Parça oluşturma yetkisini bir FragmentFactory kullanıcısına verin. b/119054429
  • NavGraphNavigator oluşturucusu artık Context kullanmıyor aosp/835340
  • NavigatorProvider bir sınıfa eklemektir. NavigatorProvider, tarafından geri verildi getNavigatorProvider() işlevini değiştirmedi. aosp/830660
  • NavDestination.navigate() kaldırıldı. Navigator numaralı telefondan navigate() adlı kuruluşu ara . aosp/830663
  • Navigator önemli ölçüde yeniden düzenlenerek OnNavigatorNavigatedListener ihtiyacı ortadan kaldırıldı navigate bunun yerine gidilen NavDestination değerini döndürmesini sağlar.
  • Navigator örnekleri artık pop etkinliklerini NavController öğesine gönderemiyor. Dikkatlice OnBackPressedCallback kullanarak geri düğmesine basıldığında müdahale edin ve navController.popBackStack() işlevini çağırın. aosp/833716

Hata Düzeltmeleri

  • Hedef, <navigation> öğesi olduğunda popUpTo artık tutarlı şekilde çalışıyor b/116831650
  • IllegalArgumentException hatasına neden olan bir dizi hata düzeltildi. iç içe yerleştirilmiş grafikler kullanıldığında b/118713731 b/113611083 b/113346925 b/113305559
  • <activity> hedeflerinin dataPattern özelliği artık doldurulacak toString() çağırarak Dize olmayan bağımsız değişkenlerden bağımsız değişkenler b/120161365

Güvenli Bağımsız Değişkenler

  • Güvenli Bağımsız Değişkenler, Enum değerleri dahil olmak üzere Serileştirilebilir nesneleri destekler. Sıralama türleri , sınıf adı olmadan enum değişmez değerini kullanarak varsayılan bir değer ayarlayabilir (örn. app:defaultValue="READ") b/111316353
  • Güvenli Bağımsız Değişkenler, desteklenen tüm türlerdeki dizileri destekler b/111487504
  • Güvenli Bağımsız Değişkenler artık kaynak dizinlerinin alt klasörlerini yoksayıyor b/117893516
  • Safe Args, uygun olduğu 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 olarak değerlendirileceğini özelleştirmenize olanak tanır. hedefler. Güncellenen belgelere göz atın. inceleyebilirsiniz. b/117333663
  • Artık bağımsız değişkenleri grafiğinizin başlangıç hedefine aktarabilirsiniz b/110300470
  • Derin bağlantılar artık nokta, kısa çizgi ve artı işareti içeren özel şemaları destekliyor. b/112806402

Çarpıcı Değişiklikler

  • navigation-testing-ktx modülü şu kısma katlandı: navigation-testing artifact ve artık yayınlanmayacak.
  • navigation-testing yapısı artık Kotlin standardına bağımlı bir yapıya sahip kitaplığını tanıtır. API, Kotlin ile daha tutarlı olacak şekilde değiştirildi kurallarından yararlanır, ancak Java'da yazılan testlerde bunu kullanmaya devam edebilirsiniz.
  • Meta veri manifestinde kayıtlı gezinme grafikleri artık desteklenmiyor. b/118355937
  • İşlemler artık <activity> öğesine eklenemez hedefler. 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 mod kullanılırken yapılandırma değişikliklerinden sonra ortaya çıkan kilitlenme düzeltildi Gezginler. b/110763345

Güvenli Bağımsız Değişkenler

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

Sürüm 1.0.0-alpha06

20 Eylül 2018

Yeni Özellikler

API Değişiklikleri

  • Çarpıcı Değişiklik: Navigator navigate() yöntemi artık Navigator.Extras parametresini almaktadır.
  • NavController'ın getGraph() yöntemi artık NonNull b/112243286 oldu

Hata Düzeltmeleri

  • NavigationUI.setupWithNavController(), ayrı hedeflerden gelen görüntülemelerle kullanılırsa b/111961977 görüntüleme sayısını artık sızdırmıyor
  • onSaveState() adlı gezgin artık yalnızca bir kez çağrılıyor b/112627079

Güvenli Bağımsız Değişkenler

  • Navigasyon hedefi Yol tarifi sınıfları artık, varsa velilerinin Yol Tarifi sınıfını genişletiyor b/79871405
  • Yol Tarifi ve Bağımsız değişkenler sınıflarında artık kullanışlı bir toString() uygulaması bulunuyor b/111843389

Sürüm 1.0.0-alpha05

10 Ağustos 2018

Hata Düzeltmeleri

  • Hatalı geri yığın davranışına neden olan bir hatayı düzeltin. b/111907708
  • Oluşturulan Args sınıflarından equals() tanesinde bir hata düzeltildi. b/111450897
  • Güvenli Bağımsız Değişkenler'deki bir derleme hatasını düzeltin. b/109409713
  • Kaynak tanımlayıcılardan Java adlarına dönüşümü düzeltme b/111602491
  • Güvenli Bağımsız Değişkenler eklentisinde boş değer atanması ile ilgili hata mesajlarını düzeltin.
  • Eksik null değer ek açıklamalarını ekleyin.

Sürüm 1.0.0-alpha04

19 Temmuz 2018

1.0.0-alpha04 gezinmesi ve ilişkili Güvenli Bağımsız değişkenler gradle eklentisi bir dizi API değişikliği, davranış değişikliği ve hata düzeltmesi içerir.

API / Davranış Değişiklikleri

  • NavHostFragment, mevcut Fragment'ı her zaman birincil gezinme parçası olarak ayarlar ve alt parça yöneticilerinin, dış NavController'ın popülaritesi başlatılmadan (b/111345778) önce yerleştirilmesini sağlar.

Güvenli Bağımsız Değişkenler

  • Zarar Veren Değişiklik: app:type, ConstraintLayout 2.0.0-alpha1 b/111110548 gibi diğer kitaplıklarla çakışma olmaması için app:argType olarak değiştirildi
  • Güvenli Bağımsız değişkenlerdeki hata mesajları artık tıklanabilir b/111534438
  • Bağımsız değişkenler sınıfları artık NonNull özelliklerinin aslında null (b/111451769) olmadığını doğruluyor
  • NavDirections ve Bağımsız değişkenler tarafından oluşturulan b/111455455 b/111455456 sınıflarına ek NonNull ek açıklamaları eklendi

Hata Düzeltmeleri

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

Sürüm 1.0.0-alpha03

12 Temmuz 2018

1.0.0-alpha03 gezinmesi ve ilişkili Güvenli Bağımsız değişkenler gradle eklentisi bir dizi API değişikliği, davranış değişikliği ve hata düzeltmesi içerir.

API / Davranış Değişiklikleri

  • Araç Çubuğu için bir NavigationUI.setupWithNavController yöntemi eklendi b/109868820
  • CollapsingToolbarLayout için NavigationUI.setupWithNavController yöntemi eklendi b/110887183
  • popBackStack() artık arka yığın boş olduğunda veya belirtilen hedef kimliği arka yığınında olmadığında false (b/110893637) döndürüyor
  • FragmentNavigator, FragmentManager durumu kaydettikten sonra gezinme işlemlerini yoksayar ve b/110987825 ile "onSaveInstanceState sonrası bu işlem gerçekleştirilemez" istisnalarından kaçınır

Güvenli Bağımsız Değişkenler

  • Kırılma Değişikliği: İlgili NavDirections yöntem adlarında alfasayısal olmayan karakterler ve bağımsız değişken adları, büyük/küçük harf kullanımıyla değiştirilir.
    • Ör. DemoController.index, setDemoControllerIndex b/79995048 olacak
    • Ör. action_show_settings, actionShowSettings b/79642240 olacak
  • Zarar Veren Değişiklik: Bağımsız değişkenler artık varsayılan olarak boş olmayan kabul edilir. Dize ve ayrıştırılabilir bağımsız değişkenlerde null değerlere izin vermek için app:nullable="true" b/79642307 ifadesini ekleyin.
  • Artık app:type="long" öğesini "123L" b/79563966 biçiminde defaultValues ile kullanabilirsiniz
  • Ayrıştırılabilir bağımsız değişkenler artık app:type için tam nitelikli sınıf adı kullanılarak desteklenmektedir. Desteklenen tek varsayılan değer "@null" b/79563966 şeklindedir
  • Bağımsız değişkenler sınıfları artık equals() ve hashCode() b/79642246 uygulamalarını uyguluyor
  • Safe Args eklentisi artık kitaplık projelerine (b/80036553) uygulanabilir
  • Safe Args eklentisi, artık b/110011752 özellik projelerine uygulanabilir

Hata Düzeltmeleri

  • Parça yaşam döngüsü yöntemlerinde gezinirken yaşanan sorunlar b/109916080
  • İç içe yerleştirilmiş grafiklerde birden çok kez gezinirken karşılaşılan sorunlar b/110178671
  • b/109909461 grafiğindeki ilk hedefle setPopUpTo kullanıldığında karşılaşılan sorunlar düzeltildi
  • Tüm app:defaultValue değerlerinin Dize b/110710788 olarak iletilmesine neden olan sorun düzeltildi
  • Android Gradle Eklentisi 3.2 Beta 01 ile paket halinde sunulan aapt2 artık Gezinme XML dosyalarındaki her android:name özelliği için saklama kuralları ekliyor b/79874119
  • 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 URLDecode bağımsız değişkenlerinin kodunu çözer. b/79982454

Hata Düzeltmeleri

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

  • Animasyonlar kullanılırken oluşan titremelerin düzeltilmesi için artık Destek Kitaplığı 27.1.1 sürümü kullanılmalıdır. b/80160903

  • defaultNavHost="true" kullanılırken IllegalArgumentException sorunu düzeltildi bunu kullanabilirsiniz. b/79656847

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

  • İç içe yerleştirilmiş grafiğe geri dönerken yaşanan IllegalArgumentException sorunu düzeltildi. b/80453447

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

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

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

API Değişiklikleri

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

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

Sürüm 1.0.0-alpha01

8 Mayıs 2018

Gezinme, uygulama içi reklamlar oluşturmak için bir çerçeve sunar. yardımcı olabilir. Bu ilk sürüm 1.0.0-alpha01.