Navigasyon
Son Güncelleme | Kararlı Sürüm | Yayın Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
26 Haziran 2024 | 2.7.7 | - | 2.8.0-beta04 | - |
Bağımlılıkları bildirme
Gezinme'ye bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünün build.gradle
dosyasına ihtiyaç duyduğunuz yapılar için bağımlılıkları ekleyin:
Modern
dependencies { def nav_version = "2.7.7" // Java language implementation implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // Kotlin implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" // Feature module Support implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version" // Testing Navigation androidTestImplementation "androidx.navigation:navigation-testing:$nav_version" // Jetpack Compose Integration implementation "androidx.navigation:navigation-compose:$nav_version" }
Kotlin
dependencies { val nav_version = "2.7.7" // Java language implementation implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") // Kotlin implementation("androidx.navigation:navigation-fragment-ktx:$nav_version") implementation("androidx.navigation:navigation-ui-ktx:$nav_version") // Feature module Support implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version") // Testing Navigation androidTestImplementation("androidx.navigation:navigation-testing:$nav_version") // Jetpack Compose Integration implementation("androidx.navigation:navigation-compose:$nav_version") }
Safe Args
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 sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici dokümanlarına bakın.
Sürüm 2.8
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 zamanRESUMED
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 soyutemptyCollection()
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
veserializeAsValues
ile ilgili dokümanlar eklendi. (Ida6bd, b/344943214) - Boş
CollectionNavType
bağımsız değişkeniyletoRoute<T>
çağrılırken oluşan kilitlenme düzeltildi. Boş birCollectionNavType
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ğeremptyCollection()
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
ileNavBackStackEntry.toRoute
kullanılırkenClassCastException
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ıktypeMap
parametresini alıyor. (Ie39fb, b/339026523)- Kotlin seri haline getirilebilir bir nesneden
SavedStateHandle
oluşturmak içinnavigation-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. (Iea94d, I0eb0d, I873b7,I873b7, {/30{I3a64b; I6c3a2, Ic3032, Ic3032, I8d394,I873b7I873b7{20{b23bC
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ıkComposableFragment
içinde yerel olarak composable yöntemlerine uygun birLocalFragment
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
yerineComposableNavHostFragment
alternatifi içeren yeni birnavigation-fragment-compose
yapısı ekler. Hercomposable
hedefi, üst düzey olarak ifade edilmelidir. Tam nitelikli adı her bir hedefteandroid: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, I5b5ac, I7e753, I960f8, I3eabd, I8ed5a, Ied2c9, Ied2c9,
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. (I644e7, I98896, I2a1c5}{22a1c5}{31c3%C3%C3%C3%C3B{2%C4%C3%C3%C3%C3B{2%C2%C3%C3%C3B{2%C4%C3%C%C3%C{/37
Hata Düzeltmeleri
NavHost
, varsayılan contentHizalama bağımsız değişkeni olarakAlignment.TopStart
kullanıyor. Bu işlem onuAnimatedContent
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
öğesininstartDestination
öğesine bağımsız değişkenleri doğrudanstartDestination
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 soyutCollectionNavType<T>
sınıfı eklendi. (Ic6d63, b/188693139) - Varsayılan
NavType
dizilerinin tümü (IntArrayType
,LongArrayType
,FloatArrayType
,BoolArrayType
veStringArrayType
) artıkCollectionNavType
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çıkvalueEquals
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
veyapopBackStack
gibi rotaları destekleyenNavController
işlevleri artıkNavTypes
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/veyanavigation
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 erkenDESTROYED
olmasına neden olan bir sorun düzeltildi. (Ib6bb7, b/317581849)
Bağımlılık Güncellemesi
- Oluşturma bölümünde gezinme seçeneği artık Oluşturma 1.7.0-alpha03 sürümüne bağlıdır.
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ğiBackStackState
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 birNavBackStackEntry
üzerinde birden fazlasaveState()
çağrısının birden fazla durumun kaydedilmesine neden olduğu ancak yalnızca ilk kaydedilen durumun geri yüklenebileceğiBackStackState
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çinNavigationUI
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şinViewModel
öğ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'inFLAG_ACTIVITY_NEW_TASK
işareti ayarlandığı durumlardasetGraph
ç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ınViewModel
ö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ızdaFragmentNavigator
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 şekildeRESUMED
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 zamanRESUMED
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ınNavHost
arasındaki etkileşimi düzeltilir. Bu etkileşim,rememberSaveable
durumunun ve sahip olduğuViewModel
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
yerineCREATED
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 kutusununSTARTED
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 istekli bir şekilde somutlaştırmaz. (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ırkenLifecycle.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 herhangi bir değişiklik yapılmayacak. Yakında bu özelliği ve Navigation Compose'a geri dönmeyle ilgili yönergelerle birlikte resmi olarak kullanımdan kaldıracağız. 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 tersidir. (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 itibaren1.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şturulanEnterTransition
veExitTransition
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
veRESUMED
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 herhangi bir değişiklik yapılmayacak. Yakında bu özelliği ve Navigation Compose'a geri dönmeyle ilgili yönergelerle birlikte resmi olarak kullanımdan kaldıracağız. 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 tersidir. (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şlevininOnDestinationChangedListener
öğesine iletilenarguments
vearguments
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ğerOnDestinationChangedListener
ö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çinserializeAsValue
değerini geçersiz kılabilir. Böylece hem serileştirme hem de seri durumdan çıkarma (parseValue
üzerinden) tamamenNavType
sınıfına dahil edilebilir.StringType
artık belirtilenString
üzerindeUri.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'instartDestination
özelliği varsayılan olarak gösterilecek.NavController.popBackStack(route)
,NavController.getBackStackEntry(route)
veNavController.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ş birNavDeepLink
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, temelFragmentManager
öğesinin sistemi geri almasını sağlar. Bu, Parça1.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 birFragmentTransaction
işlemini manuel olarak yapmaya çalıştığınızdaIllegalArgumentException
hatası verir. Parçaları her zamannavigate()
API'si aracılığıyla eklemelisiniz. - Gezinme XML dosyasının etkinlik öğesindeki
app:data
veapp:dataPattern
özelliklerinde yer tutucu olarak${applicationId}
dizesi tam olarak kullanıldığında, yer tutucu, uzatıldığında otomatik olarak bağlamınpackageName
değeri ile doldurulur. FragmentNavigator
,NavBackStackEntries
uygulamasında gezinirken ve gezinirken artık geçiş API'lerini kullanıyor. YaniNavBackStackEntry
Lifecycle
, sonLifecycle.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. YaniNavBackStackEntry
Lifecycle
,DESTROYED
hizmetine geçmeden önceDialogFragment
Lifecycle
öğesininDESTROYED
paketine taşınmasını bekleyecek.NavHostFragment
artıkonCreate()
etiketinden sonra değil,NavHostFragment
FragmentManager
öğesine eklenir bağlanmazNavController
öğ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ğiAppBarConfiguration
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 yeniisTopLevelDestination
işlevi aracılığıyla kendi kodunuzda da kullanılabilir.- Üstteki uygulama çubuğuyla çalışmak için
NavigationUI
ürününde bulunansetupWithNavController
entegrasyonları artık, otomatik olarak oluşturulan kaynak tam sayısını çıkarmak yerineandroid:label
öğenizde bulunanReferenceType
bağımsız değişkene aitR.string
değerini dize değerlerine ayrıştıracak. NavigationUI
artık seçiliMenuItem
ü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ındapopUpTo
ile gezinme yoluyla bir parçanın kaldırılmasınınIllegalStateException
'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 birtoString
uygulaması sağlıyor. (Iff00b)
Hata Düzeltmeleri
- Parçalarla Gezinme kullanılırken
FragmentManager
öğesinin arka yığınına parça ekleyen birFragmentTransaction
işlemini manuel olarak yapmaya çalıştığınızdaIllegalArgumentException
hatası verir. Parçaları her zamannavigate()
API'si aracılığıyla eklemelisiniz. (I6d38e) - Bir giriş ekleyen
navigate
ve aynı çerçevede onu kaldıran birpopBackStack
olduğunda, arka yığında ortaya çıkan en üstteki giriş tutarlı bir şekildeRESUMED
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 olmayanNavArgument
içermesi halinde bu hedefin rotasının, null olmayanNavArgument
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ğiNavDestination
için gereken null olmayan birNavArgument
eksikseAction/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 kaydedilmedenonLaunchSingleTop
kullanılırken karşılaşılan kilitlenmeyi düzeltir. Bu ayrıca, kök grafik derlemeleri ve yanlış geriye dönük yığınla ilişkilendirilmiş hedeflere gidilmesine neden olan 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ıkonCreate()
etiketinden sonra değil,NavHostFragment
FragmentManager
öğesine eklenir bağlanmazNavController
öğ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ızdaNavController
durumu doğru girişte gösterilir. (I3a8ec, b/270447657)FragmentNavigator
artık geriye yığın sistem geri veyapopBackStack()
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)- Gezinme kullanılmadan
FragmentNavigator
öğesininFragmentManager
öğesine parça eklenmesi artık kilitlenmeye neden olmayacak. (b17204, b/274167493)
Bağımlılık Güncellemeleri
- Navigasyon artık Yaşam Döngüsü
2.6.1
'ne bağlıdır. (586fe7) - Gezinme artık SavedState
1.2.1
sürümüne bağlıdır. (078e4e) - Gezinme artık ProfileLoader
1.3.0
uygulamasına dayalı olarak gerçekleştirilmektedir. (512f0c)
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
öğesindenclearBackStack()
ç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ırkenNavBackStackEntry
öğ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'instartDestination
ö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ığındaNavBackStackEntry
'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ızBottomMenuItem
doğru şekilde güncellenmez. (b/270447657) - Parçalarla Gezinme kullanılırken durum geri yüklendikten sonra
NavBackStackEntry
Lifecycle
, parçasıDESTROYED
olduğundaDESTROYED
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)
veNavController.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. YaniNavBackStackEntry
Lifecycle
, sonLifecycle.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. YaniNavBackStackEntry
Lifecycle
,DESTROYED
hizmetine geçmeden önceDialogFragment
Lifecycle
öğesininDESTROYED
paketine taşınmasını bekleyecek. (I53ee5, b/261213893)
API Değişiklikleri
NavigatorState
,Navigator
öğelerininNavBackStackEntries
öğelerini araLifecycle.State
öğelerine taşımalarını sağlamak için artıkprepareForTransition
API'sini sağlamaktadır. (I42c21, b/238686802)- Artık bir
NavGraphNavigator
veyaComposeNavigator
ile ilişkili arka yığınınabackstack
mülkü üzerinden erişebilirsiniz.ComposeNavigator
, artık gezinme veyapopBackStack
işlemini yürüten birNavBackStackEntry
öğesini işaretlemek içinonTransitionComplete()
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ş birNavGraph
ile kullanılırken orijinal hedeftenstartDestination
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 giderkenDialogFragment
ö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çinserializeAsValue
değerini geçersiz kılabilir. Böylece hem serileştirme hem de seri durumdan çıkarma (parseValue
üzerinden) tamamenNavType
sınıfına dahil edilebilir.StringType
artık belirtilenString
üzerindeUri.encode
yöntemini çağırmak için bu yöntemi geçersiz kılıyor. (Ie5213, b/247637434)NavigationUI
artık seçiliMenuItem
ü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ığındaNavHost
, artıkNoSuchElementException
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
- Gezinme artık
1.5.4
Parça'ya bağlıdır. (Icd424)
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ğiAppBarConfiguration
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 yeniisTopLevelDestination
işlevi aracılığıyla kendi kodunuzda da kullanılabilir. (Ie936e, b/238496771)
Hata Düzeltmeleri
navigation:navigation-fragment
bileşeni artık1.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 bulunansetupWithNavController
entegrasyonları artık, otomatik olarak oluşturulan kaynak tam sayısını çıkarmak yerineandroid:label
öğenizde bulunanReferenceType
bağımsız değişkene aitR.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
veapp:dataPattern
özelliklerinde yer tutucu olarak${applicationId}
dizesi tam olarak kullanıldığında, yer tutucu, uzatıldığında otomatik olarak bağlamınpackageName
değeri ile doldurulur. (Iaabde, b/234223561) - Artık
navDeepLink
Kotlin DSL'sini kullanarak boş birNavDeepLink
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 yeniNavDestination
uzantısı işlevi eklendi.R.string
değerlerini Dize değerlerine ayrıştırarakReferenceType
bağımsız değişkenlerini destekler. (I07d89, b/236269380)
Davranış Değişiklikleri
- NavBackStackEntry'nin
arguments
veOnDestinationChangedListener
öğesine iletilenarguments
, 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ğerOnDestinationChangedListener
ö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 velaunchSingleTop
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 kaynaklananIllegalStateException
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ıkNoSuchElementException
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
2.5.2
gezinmesi artık1.5.2
Parçası'na bağlı. (aosp/2178734)
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
- Gezinme kitaplığı artık Yaşam Döngüsü
2.5.1
özelliğine bağlı. (Ib4451) - Gezinme kitaplığı artık
1.5.1
etkinliğine dayalı. (I3efe8) - Gezinme kitaplığı artık
1.5.1
Parça'ya bağlı. (I56177)
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
'ninCreationExtras
aracılığıyla durum bilgisiz birViewModelProvider.Factory
sağlayabilir.
Navigasyon Güvenli Aramaları
Navigation Safe Args
,7.0
tarihinden önceki AGP sürümlerinin uyumluluğunu azaltarakAndroid 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 veNavController
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 birapplicationIdSuffix
ve ad alanı kullanılırken ya daapplicationId
ile ad alanı farklı olduğundaNavigation SafeArgs
artık kilitlenmez. (I754b1, b/233119646)NavArgument
artık bağımsız değişkenin dahili değerlerini gösteren özel birtoString()
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>
öğelerininnavigation.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
veDialogHost
sürümlerindeki derlenebilir kapsamlar artık beklenen sırada, yani iç composable'lar, dış composable'lardan önce bertaraf ediliyor. (I157e6)- Gezinme SafeArgs, önbellekte yeniden konumlandırılabilmesi için artık
ArgumentsGenerationTask
içindePathSensitivity.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ı çevreleyenremember
çağrısının, anahtar olarak birNavBackStackEntry
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ıkpopWithTransition
kullanıyor. Bu hata,dialog
hedefi içinde birViewModel
kullanılırken sistemin geri kullanılması veya iletişim kutusunun dışına dokunarak iletişim kutusu kapatılmasındaIllegalStateException
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 birNavHost
, birincil olmayan alt gezinme sekmesinde birNavHost
içine iç içe yerleştirilirken birIllegalStateException
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
visibleEntries
artık deneysel değil. (I4829f, b/225394514)
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ş NavHost kullanılırken içNavHost
öğesinin artık düzgün bir şekilde canlandırılacağı anlamına gelir. (I4ba2b, b/225394514) NavController
tarafından sağlananvisibleEntries
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ıkCreationExtras
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 veAndroidManifest.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
by navGraphViewModels
içinCreationExtras
ileterekViewModel
oluşturabilirsiniz. (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
, ViewModelleri oluşturmak içinNavBackStackEntries
ile kullanıldığında artık doğru şekilde çalışır. (I69161, b/217617710)- Gezinme Güvenli Bağımsız Değişkenler artık AndroidManifest'teki paketin yerine
build.gradle
içinde tanımlanan ad alanının kullanılmasını destekliyor. (I659ef, b/217414933)
Sürüm 2.5.0-alpha02
9 Şubat 2022
androidx.navigation:navigation-*:2.5.0-alpha02
yayınlandı. 2.5.0-alpha02 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Gezinme
2.4.1
'den:NavHostFragment
, iç içe yerleştirilmiş grafiklerle görüntüleme bağlamayı kullanırken artıkOnBackPressedDispatcher
öğesini düzgün şekilde ayarlayacaktır. (Ifbb51, b/214577959) - Gezinme
2.4.1
'den: İç içe yerleştirilmiş birden fazlaNavGraph
ü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
NavBackStackEntry
artık Yaşam Döngüsü2.5.0-alpha01
kapsamında sunulan ViewModel CreationExtras ile entegre oluyor. (Ib9fe2, b/207012490)
Hata Düzeltmeleri
- Bir Parçanın
onCreate()
öğesinden,by navGraphViewModels()
aracılığıyla oluşturulanViewModel
öğesineIllegalStateException
ile erişilemediği bir sorun düzeltildi. (I8a14d) NavDeepLink
'ler artık bağımsız değişkenlerin kodunu iki kez çözmeyecek. Diğer bir deyişle, uygun bağımsız değişkenler artık son hedefinize iletilecektir. (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 Arg'ların artık 7.0'dan önceki Android Studio sürümleriyle uyumlu olmayacağı, ancak artık Android Gradle Eklentisi 7.1.0 ve sonraki sürümleriyle uyumlu olduğu anlamına gelir. (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
- Gezinme
2.5.0-alpha03
'den geri bağlantı yapıldı: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) - Gezinme
2.5.0-alpha03
'dan geri bağlantı kuruldu: Navigation SafeArgs artık AndroidManifest'teki paket yerinebuild.gradle
içinde tanımlanan ad alanının kullanılmasını destekliyor. (I659ef, b/217414933) 2.5.0-alpha04
gezinme alanından geri bağlantı yapıldı: Artık ad alanları kullanılırkenNavigation Safe Args
kilitlenmeyecek veAndroidManifest.xml
mevcut değil. (I17ccf, b/227229815)- Gezinme
2.5.0-alpha04
'dan geri çekilmiştir: Boş dize artık derin bağlantılarda geçerli bağımsız değişkenler olarak kabul edilir. (I70a0d, b/217399862)
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ırkenOnBackPressedDispatcher
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 eski sürüme aktarıldı: Bir Parça'nınonCreate()
öğesindenby navGraphViewModels()
aracılığıyla oluşturulan ViewModel'e erişiminIllegalStateException
ile başarısız olmasına neden olan sorun düzeltildi. (I8a14d) - Gezinme
2.5.0-alpha01
'den geriye dönük bağlantı:NavDeepLink
artık bağımsız değişkenlerin kodunu iki kez çözmeyecek. Diğer bir deyişle, doğru şekilde çözülmüş bağımsız değişkenlerin artık son hedefinize iletilmesi gerekiyor. (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 yeniAbstractListDetailFragment
ü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 birSlidingPaneLayout
ve uygulama olarakNavHostFragment
kullanan bir ayrıntı bölmesini kullanır.NavController
üzerindekicurrentBackStackEntryAsFlow()
yöntemi, geçerliNavBackStackEntry
her değiştiğinde yayınlanan birFlow
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ürNavBackStackEntry
örneklerinin listesiniStateFlow
olarak alma imkanı sunuyor. - Artık özel NavType'lar oluşturmak için
NavType
sınıfını genişletmek mümkündür. Özel türler yalnızca gezinme grafiğinizi programatik olarak oluştururken (ör. Gezinme Graph Kotlin DSL) desteklenir. Gezinme artık özel NavigationUI'nin uygulanmasına yardımcı olmak için kullanılabilecek
findStartDestination()
vegetHierarchy()
API'lerini sağlıyor.findStartDestination()
,startDestination
öğesinin kendisi iç içe yerleştirilmiş birNavGraph
olsa bile, grafiğe gittiğinizde görüntülenecek asıl başlangıç hedefiniNavGraph
ü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ılabilenNavDestination
işlevidir.val matchingRoute: Boolean = destination.hierarchy.any { it.route == routeToFind }
BottomNavigationView
alanNavigationUI
yöntemleri, Materyal1.4.0
,NavigationBarView
ile tanıtılan üst sınıfı kapsayacak şekilde güncellendi. Bu işlem, bu yöntemlerinNavigationRailView
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 birfromSavedStateHandle()
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ılarak yerinepopUpToId
getirildi. getStartDestination()
API desteği sonlandırılarakgetStartDestinationId()
kullanıma sunuldu.
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
vedialog
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 birNavHost
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ığındaRESUMED
durumuna ulaşır ve çıkışlar başladığında hemenSTARTED
değerine düşer. Böylece, yalnızcaLifecycle
RESUMED
olduğunda birnavigate
çağrısı tetikleyerekIllegalStateException
ve çoklu dokunma sorunlarının tümünü önleyebilirsiniz. ViewModel
kapsamının belirlenmesi (Lifecycle ViewModel Compose2.4.0
viewModel()
API'si veya Hilt Navigation Compose1.0.0
dahiltViewModel()
öğesininhiltViewModel()
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'inonCleared()
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
öğesiniNavHost
dışındaki composable'lara (alt gezinme çubuğu gibi) bağlamaya izin vermek içinrememberNavController()
vecurrentBackStackEntryAsState()
ü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ıkapp:popUpTo
aracılığıyla açılan tüm hedeflerin durumunu kaydetmek veapp:destination
olarak iletilen hedefle ilişkilendirilen durumu geri yüklemek içinapp:popUpToSaveState
veapp: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 üzerinderestoreState
boole özelliğini vesaveState
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 birNavOptions
nesnesi oluştururkensetRestoreState()
ve eksaveState
parametresi gerektirensetPopUpTo()
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 birsaveState
parametresi içerebilir.popBackStack()
veyapopUpToSaveState
ile kaydedilmiş herhangi bir durumu temizlemek içinclearBackStack()
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
,createPendingIntent()
tarafından döndürülenPendingIntent
öğesine artıkPendingIntent.FLAG_IMMUTABLE
ekleyerek bu API'nin Android 12'yi hedeflerken beklendiği gibi çalışmasını sağlar.- Navigasyon artık Yaşam Döngüsü
2.3.1
'ne bağlıdır ve artıkNavBackStackEntry
Lifecycle
değerini@MainThread
olarak güncelleyen yöntemler olansetGraph()
,popBackStack()
,navigateUp()
venavigate()
olarak işaretlenmiştir. Böylece, Navigasyon, Yaşam Döngüsü2.3.0
'de sunulan ana iş parçacığı yaptırımıyla uyumlu hale getirilmiştir. - 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şkenler'den oluşturulan Kotlin kodu, işlem oluştururken artık varsayılan değerleri olmayan bağımsız değişkenleri, varsayılan değerleri parametre olarak ayarlananlardan önce yerleştiriyor.
- Güvenli Bağımsız Değişkenler artık bağımsız değişkenler oluştururken, varsayılan değerleri olmayan parametreleri, varsayılan değerlere sahip olanlardan önce yerleştiriyor.
- 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
bölümünde düzeltildi: Bir ParçanınonCreate()
öğesindenby navGraphViewModels()
aracılığıyla oluşturulmuş birViewModel
değerine erişim,IllegalStateException
ile başarısız olacaktır. (b/213504272) - Gezinme
2.5.0-alpha01
bölümünde düzeltildi: Safe Args 2.4.0, Android Gradle Plugin 7.1.0 ve sonraki sürümlerle uyumlu değildir. (b/213086135) - İç içe yerleştirilmiş birden fazla gezinme grafiğiyle derin bağlantılar oluşturmak, tam geri yığını doğru şekilde oluşturmaz. (b/214383060)
Sürüm 2.4.0-rc01
15 Aralık 2021
androidx.navigation:navigation-*:2.4.0-rc01
yayınlandı. 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ırkenNavController
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
öğesindenViewModel
alma girişiminin başarısız olmasına neden olan sorun düzeltildi. (I6b96d, b/206465487) activity
hedefleri, Gezinme Oluşturma özelliğininNavHost
ö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 örtülü derin bağlantıların işlenmesi artık başka bir grafiğe gidildiğinde
saveState
işaretini otomatik olarak ekleyerekNavigationUI.setupWithNavController
gibi kodların ve birden çok geriye yığın kullanan kodun beklendiği gibi çalışmasını sağlar. (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
NavHost
doğrudan etkinliğinsetContent()
öğesine eklendiğinde,Lifecycle.State.STARTED
öğesine taşındıktan sonra NavBackStackEntries'inLifecycle.State.CREATED
öğesine aktarılmasına neden olan sorun düzeltildi. (Ia5ac1, b/203536683)- Bir
DialogFragment
hedefini iletişim kutusu gerçekten gösterilmeden önce arka yığından dışarı fırlatmanın iletişim kutusunu kapatmayacağı ve hatalı iletişim kutusunun kullanıcı tarafından manuel olarak kapatılması durumunda kilitlenmeye neden olduğu bir yarış durumu düzeltildi. (I687e5) NavigationUI
üzerindekionNavDestinationSelected
API'nin, söz konusu gezinme grafiğinde aslındanavigate()
yapmamış olsanız biletrue
döndürmesine neden olan sorun düzeltildi. Artık hedefinhierarchy
değerini kullanarak geçerli hedefle ilişkiliMenuItem
öğesini seçmek içinsetupWithNavController
tarafından dahili olarak kullanılan mantığı kullanır. (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
- Aynı ekranlar arasında ileri geri giderek geçişler kesintiye uğradığında ViewModel'ler artık kaldırılmaz (Id52d8, b/200817333)
NavDestination
uygulamalarına derin bağlantılar eklenirken artık boş değer içerenNavDeepLink
bağımsız değişkenleri için varsayılan değer gerekmiyor. (I5aad4, b/201320030)- Farklı Yaşam Döngüleri olan NavBackStackEntries artık eşit kabul edilmez. Bu, NavHost'ın singleTop ile gezinme yaparken ve alt menü öğelerini yeniden seçerken tüm hedefleri doğru şekilde yeniden oluşturacağı anlamına gelir. (I1b351, b/196997433)
onCreateListPaneView()
tarafından döndürülen liste bölmesindekilayout_width
velayout_weight
özelliklerinin yanlış işlenmesine veya yoksayılmasına neden olanAbstractListDetailFragment
ile ilgili sorun düzeltildi. (f5fbf3)- İletişim kutusu hedeflerinin görsel durumu artık
DialogFragmentNavigator
durumuyla senkronize ediliyor. Bu,DialogFragment
için eşzamansızdismiss()
API'nin manuel olarak çağrılmasının artık kapatılmış olan iletişim kutusunun üzerindeki tüm iletişim kutusu hedeflerini düzgün bir şekilde temizlediği anlamına gelir. Bu durum, iletişim kutunuzu kapatmak içinpopUpTo
veyapopBackStack()
kullandığınız durumları etkilemez. (I77ba2) AbstractAppBarOnDestinationChangedListener
artıkonDestinationChanged()
için daha net hata mesajları sunuyor. (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
visibleEntries
StateFlow (Ia964e) üzerinden görünür tümNavBackStackEntry
örneklerinin listesini alma imkanı sunuyor rememberNavController()
artık Accompanist Navigation Material'dakiler gibi isteğe bağlı Gezginleri daha iyi desteklemek için döndürülenNavController
öğesine eklenecek isteğe bağlı birNavigator
örnek grubunu alıyor. (I4619e)
Hata Düzeltmeleri
- Etkinlik yeniden oluşturulduğunda Dinamik Gezinme artık çökmeyecektir. (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()
vefromSavedStateHandle()
için bağımsız değişkenleri uygun parametre sırasında oluşturuyor. (I824a8, b/200059831)
Sürüm 2.4.0-alpha09
15 Eylül 2021
androidx.navigation:navigation-*:2.4.0-alpha09
yayınlandı. Sürüm 2.4.0-alpha09 bu kaydetmeleri içerir.
Yeni Özellikler
- Artık
popBackStack()
veyapopUpToSaveState
ile kaydedilen durumları temizlemek içinclearBackStack()
yöntemini kullanabilirsiniz. (I80a0f) - Artık iç içe yerleştirilmiş gezinme grafiğinizin oluşturucusuna bir bağımsız değişken ve/veya derin bağlantı listesi aktarabilirsiniz. Bu listeler, oluşturulan grafiğe otomatik olarak eklenir. (I8a470, b/182545357)
API Değişiklikleri
navArgument
Kotlin DSL işlevi artıknavigation-compose
yerinenavigation-common
işlevinin bir parçası. Bu işlevi kullanmaya devam etmek için içe aktarma işlemlerinin güncellenmesi gerekir. (I1d095)
Davranış Değişiklikleri
- Güvenli Bağımsız Değişkenler artık bağımsız değişkenler oluştururken, varsayılan değerleri olmayan parametreleri, varsayılan değerlere sahip olanlardan önce yerleştiriyor. (I89709, b/198493585)
Hata Düzeltmeleri
- Gezinme Oluşturma menüsünde, NavGraphs
yalnızca tüm alt öğeleri
DESTROYED
olduğundaDESTROYED
olur. (I86552, b/198741720) - Boş değer atanabilir
NavDeepLink
bağımsız değişkenleri için artık varsayılan değer gerekmiyor. (Ia14ef, b/198689811) setGraph()
yeni bir grafikle çağrıldığında, önceki yığını açma davranışının yanı sıra artık kaydedilen tüm geri yığınlar da temizlenecek. (I97f96)launchSingleTop
kullanılırkenOnDestinationChangedListener
örneklerinin vecurrentBackStackEntryFlow
öğelerinin bildirilmemesine neden olan sorun düzeltildi. (Iaaebc)
Bağımlılık Güncellemeleri
- Gezinme Oluşturma Aracı artık Etkinlik Oluşturma 1.3.1 sürümüne bağlıdır. (I05829)
- Gezinme Oluşturma İşlemi artık Yaşam Döngüsü ViewModel Oluşturma
2.4.0-beta01
özelliğine bağlı. (Ib86a3)
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
- Artık özel NavType'lar oluşturmak için
NavType
sınıfını genişletmek mümkündür. Özel türler yalnızca gezinme grafiğinizi programatik olarak oluştururken (ör. Gezinme Graph Kotlin DSL) desteklenir. (I78440, b/196871885)
Davranış Değişiklikleri
- Güvenli Bağımsız Değişkenler'den oluşturulan Kotlin kodu, işlem oluştururken artık varsayılan değerleri olmayan bağımsız değişkenleri, varsayılan değerleri parametre olarak ayarlananlardan önce yerleştiriyor. (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
- composable() içinde
getBackStackEntry
vepreviousBackStackEntry
öğelerininremember()
ile birlikte kullanılması, artık arka yığında hiçbir hedefin olmaması istisnasına neden olmayacak. (I75138, b/194313238) - Gezinme Oluşturma Özelliği, artık geri yığın bağımsız değişkenlerini değiştirirken ve
launchSingleTop=true
kullanırken düzgün şekilde yeniden oluşturuyor. (Iebd69, b/186392337) - 13 veya 29 hedef içeren bir grafikle
setGraph
aranırken artıkArrayIndexOutOfBoundsException
olmayacak. (I1a9f1, b/195171984) - SafeArgs Java oluşturucusu, artık Args sınıfları oluştururken lint uyarılarına neden olmamalıdır. (I1a666, b/185843837)
Harici Katkı
- Derin bağlantıların, gerekli tüm bağımsız değişkenlerin (varsayılan değ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 artık yapılandırma değişikliklerinden sonra ve çoklu arka yığın özelliğini kullanırken grafikler değiştirildiğinde durumu düzgün bir şekilde kaydediyor. (If5a3d, b/195141957)
- Birden fazla arka yığınla gezinme oluşturma özelliğini kullanırken aynı sekmeyi yeniden seçmek, artık boş ekranla sonuçlanmayacak. (I860dc, b/194925622)
NavHost
artıkNavBackStackEntry
öğesininLifecycle.State
değerlerinde değişiklikleri gözlemliyor. Bu da bir parçadaNavHost
kullanılması, boş ekran yerine yaşam döngüsü değiştikçe uygun şekilde yeniden derleneceği anlamına gelir. (I4eb85, b/195864489)- Etkinliği yeniden oluşturduktan sonra (ör. yapılandırma değişikliğinden sonra)
DialogFragment
kapatma işlemininNavController
durumunun doğru şekilde güncellenmemesine neden olan sorun düzeltildi. (Icd72b) - 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ı bulunmasa bile NavController'ın geri düğmesine müdahale etmesine neden olabilir. (If3b34)
- Güvenli bağımsız değişkenler artık
ViewModel
kodunuzu test etmek amacıyla kullanılabilecek bağımsız değişkenler için otomatik olaraktoSavedStateHandle
yöntemi oluşturur. (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
üzerindekirequireSlidingPaneLayout()
verequireDetailPaneNavHostFragment()
yöntemleri sırasıylagetSlidingPaneLayout()
vegetDetailPaneNavHostFragment()
olarak yeniden adlandırıldı. (I34a08)
Davranış Değişiklikleri
- Animasyonlarla (
Crossfade
gibi) gezinirken yeni hedefinLifecycle
değeri artık yalnızca animasyon tamamlandığındaRESUMED
hedefine ulaşacak. (If0543, b/172112072, b/194301889) - Gezinme Oluşturma'nın
NavHost
özelliği artık grafiği ilk bestenin parçası olarak ayarlıyor. (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şabilecekNullPointerException
düzeltildi. (938a0c, b/193805425)- Gezinme Oluşturma'da, derin bağlantılı
NavBackStackEntry
öğesininRESUMED
durumuna ulaşmaması sorunu düzeltildi. (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
- Gezinme Oluşturma özelliğinin
NavHost
özelliği artık hedefler arasında gezinirken her zaman çapraz geçişleri kullanıyor. (I07049, b/172112072) - Artık NavHost grafiğinde değişiklik yapabilirsiniz. Başlangıç hedefi ve grafikteki hedefler aynı olan grafikler eşit kabul edilir ve
NavController
arka yığınını temizlemez. (I0b8db, b/175392262)
Hata Düzeltmeleri
- NavController'ın durumundaki geri gelen güncellemelerden kaynaklanan
NavBackStackEntry
öğesine bağlı birLifecycleObserver
içindenpopBackStack()
çağrılırkenNoSuchElementException
sorunu düzeltildi. (I64621) AbstractListDetailFragment
artıkAbstractListDetailFragment
kullanılmadığındaSlidingPaneLayout
öğesinin APK'nızdan tamamen kaldırılmasına izin veriyor. (i611ad)NavGraph
veNavDestination
artık eşittir yöntemini geçersiz kılıyor. Böylece, aynı değerlere sahip iki nesne eşit kabul edilecek. (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 yeniAbstractListDetailFragment
ü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 birSlidingPaneLayout
ve uygulama olarakNavHostFragment
kullanan bir ayrıntı bölmesini kullanır. (Iac4be, b/191276636)navigation-compose
yapısınınNavHost
tanesi artıkcomposable
hedeflerin yanı sıradialog
hedefi de destekliyor. Bu iletişim kutusu hedeflerinin her biri, geçerlicomposable
hedefinin üzerinde kayan birDialog
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
tablosundakiadd
işlevipush
olarak yeniden adlandırıldı.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çinNavigatorState
üzerindepushWithTransaction
vepopWithTransition
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
,createPendingIntent()
tarafından döndürülenPendingIntent
öğesine artıkPendingIntent.FLAG_IMMUTABLE
ekleyerek bu API'nin Android 12'yi hedeflerken beklendiği gibi çalışmasını sağlar. (If8c52)
Hata Düzeltmeleri
- Grafiğe geçirilen bağımsız değişkenlerin dinamik olarak dahil edilen grafiğe doğru şekilde iletilmemesine neden olan
<include-dynamic>
ile ilgili sorun düzeltildi. (I3e115) - Varsayılan değeri
@null
olanstring[]
bağımsız değişkeni kullanılarak bir hedefe gidilirkenNullPointerException
düzeltildi. (I1fbe8) - R8 3.1 tam modunu kullanırken sorunları düzelterek
@Navigator.Name
için ProGuard kuralları ekleyin. (I2add9, b/191654433) - SafeArgs,
1.5.0
tarihinden öncekiKotlin
sürümleriyle uygulamanızı oluştururken artık başarısız olmayacak. (Icd1ff, b/190739257)
Sürüm 2.4.0-alpha03
16 Haziran 2021
androidx.navigation:navigation-*:2.4.0-alpha03
yayınlandı. 2.4.0-alpha03 sürümü bu 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) - Üst düzey bir hedefte olduğunuzda
setupActionBarWithNavController()
adlı gezinme simgesinin Yukarı simgesini düzgün bir şekilde kaldırmadığı Gezinme2.4.0-alpha01
'de ortaya çıkan regresyon düzeltildi. (I5d443, b/189868637) - NavController'ın kök grafiği önceden açıldıktan sonra
popBackStack()
çağrılırken ortaya çıkanIllegalStateException
düzeltildi. (I2a330, b/190265699) by navArgs()
için ProGuard kuralları artıknavigation-common
veya buna bağlı herhangi bir yapı kullanılırken doğru şekilde uygulanıyor. (I68800, b/190082521)- İlk kez bir geri arama aldığında
navigate()
çağrısı yapan birOnDestinationChangedListener
, şu anda gittiği hedefle birlikte ikinci bir geri çağırma kullanıyor. (Ie5f9e, b/190228815) - Güvenli Bağımsız Değişkenler artık dinamik özellik modülleri ve AGP 7.0 ve sonraki bir sürümle birlikte kullanıldığında kilitlenmiyor. (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ırkenUnable 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()
vegetHierarchy()
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ılabilenNavDestination
işlevidir.(I2932f, b/188183365)val matchingRoute: Boolean = destination.hierarchy.any { it.route == routeToFind }
BottomNavigationView
alan NavigationUI yöntemleri, bunun yerine1.4.0
Materyalinde (NavigationBarView
) tanıtılan üst sınıfı alacak şekilde güncellendi. Bu işlem, bu yöntemlerinNavigationRailView
ile kullanılmasına olanak tanır. (Ib0b36, b/182938895)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. (I07bc1, b/178291654)
API Değişiklikleri
- Kimlik kullanan Kotlin DSL derleyicileri kullanımdan kaldırılmıştır ve bunların, rota kullanan derleyicilerle değiştirilmesi gerekir (I85b42, b/188816479) (I9f58f, b/188816479)
Hata Düzeltmeleri
DialogFragmentNavigator
, bir iletişim kutusu sistem geri düğmesine basarak veya dışına tıklayarak kapatıldığındaNavController
durumunu bildirmek için artıkNavigatorState.pop()
API'sini kullanıyor. BöyleceNavController
durumu, her zaman Gezgin'in durumuyla senkronize ediliyor. (I2ead9)Navigasyon, bir
onDestinationChanged
geri çağırması ileOnDestinationChangedListeners
listesi değiştirildiğinde artıkConcurrentModificationException
sağlamıyor. (Ib1707, b/188860458)Güvenli Bağımsız Değişkenler artık Kotlin'de yol tarifi özellikleri oluşturmaya çalışırken çökmüyor. (Id2416, b/188564435)
NavDestination'daki setId yöntemi artık
@IdRes
ile düzgün bir şekilde notlandırıldığı için yalnızca kaynak kimliklerini kabul ediyor. (I69b80)findNode
öğesinin int parametresi artıkresid
yerineresId
olur. (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
üzerindekicurrentBackStackEntryAsFlow()
yöntemi, geçerliNavBackStackEntry
her değiştiğinde yayınlanan birFlow
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ıkapp:popUpTo
aracılığıyla açılan tüm hedeflerin durumunu kaydetmek veapp:destination
olarak iletilen hedefle ilişkilendirilen durumu geri yüklemek içinapp:popUpToSaveState
veapp: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 üzerinderestoreState
boole özelliğini vesaveState
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 birNavOptions
nesnesi oluştururkensetRestoreState()
ve eksaveState
parametresi gerektirensetPopUpTo()
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 birsaveState
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ılarak yerinepopUpToId
getirildi. (I59c73, b/172823546) getStartDestination()
API desteği sonlandırılarakgetStartDestinationId()
kullanıma sunuldu. (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 oluşturulan arka yığına birden fazla farklı hedef eklemeyi destekliyor. (I3ee0d, b/147913689)DynamicNavHostFragment
(Icd515, b/175222619) için fabrika işlevlerini ekleyinNavBackStackEntry
öğesinin benzersiz kimliği, artık herkese açık API'sinin bir parçası olarak gösteriliyor. (Ie033a)NamedNavArgument
ürünününname
veargument
alanları ve yapılandırma işlevleri artık herkese açık. (#174, b/181320559)- İlgili beste yerellerine
NavBackStackEntry
sağlayan yeni birNavBackStackEntry#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 birfromSavedStateHandle()
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 Yaşam Döngüsü
2.3.1
'ne bağlıdır ve artıkNavBackStackEntry
Lifecycle
değerini@MainThread
olarak güncelleyen yöntemler olansetGraph()
,popBackStack()
,navigateUp()
venavigate()
olarak işaretlenmiştir. Böylece, Navigasyon, Yaşam Döngüsü2.3.0
'de sunulan ana iş parçacığı yaptırımıyla uyumlu hale getirilmiştir. (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ğeriRED
değerine sahip olsa bilewww.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 Compose1.0.0-beta07
ve sonraki sürümlerle uyumludur.
Hata Düzeltmeleri
- Sondaki bağımsız değişken yer tutucularının, tam olarak eşleşen bir son eke sahip derin bağlantılara göre öncelikli olmasına neden olan sorun düzeltildi. (#153, b/184072811)
NavHostFragment
artık varsayılanDialogFragmentNavigator
ile aynı@Navigator.Name("dialog")
öğesini kullanan özel gezinme araçlarını destekliyor. (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 birfromSavedStateHandle()
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ünname
veargument
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 yeniNavBackStackEntry#provideToCompositionLocals
uzantısını sunduğunuz için jossiwolf'a teşekkür ederiz. (#175, b/187229439) NavigatorProvider#addNavigator
davranışını iyileştirdiği için jossiwolf'a teşekkür ederiz. Bu davranışla birlikte aynı örnekle tekrar tekrar çağrının sorun yaratmaması sağlanır. (#176, b/187443146)
Gezinme Oluşturma Sürümü 1.0.0
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 hedef composable'ları sarmalayan composable container'a aktarılan birModifier
kabul ediyor. (I85aca, b/175125483)
Hata Düzeltmeleri
NavHost
artık birOnBackPressedDispatcherOwner
bulunamadığında bile çalışıyor.NavHost
öğesini önizlerken bu durum geçerli. (I7d8b4)- Oluşturma Gezinme Gezinmesi artık
2.3.5
Gezinmesine bağımlıdır veNavHost
hedefindeBackHandler
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
, mevcut bileşimdeViewModelStoreOwner
olup olmadığını daha iyi belirlemek için artık null değeri içeren birViewModelStoreOwner
değeri döndürüyor. BirViewModelStoreOwner
ayarlanmazsaviewModel()
veNavHost
gibi birViewModelStoreOwner
gerektiren API'ler yine de istisna oluşturur. (Idf39a)
Hata Düzeltmeleri
- Artık Gezinme Oluşturma Gezinme 2.3.4'e bağımlıdır. Bu sürüm, grafik ayarlandıktan sonra aynı ViewModelStore nesnesini ayarlamaya yönelik düzeltmeyi içerir. (I65c24, b/177825470)
Sürüm 1.0.0-alpha08
24 Şubat 2021
androidx.navigation:navigation-compose:1.0.0-alpha08
yayınlandı. 1.0.0-alpha08 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
NavHost
, artıkLocalSavedStateRegistryOwner
CompositionLocal öğesini bu hedefinNavBackStackEntry
ile dolduruyor. Böylece, doğrudanSavedStateRegistry
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
- Gezinme Oluşturma Aracı artık
composable
hedeflerineviewModel()
desteği sağlamak için Lifecycle ViewModel Compose 1.0.0-alpha01 sürümüne bağlıdır. (I7a374) NavHost
,NavController
üzerinde ayarlananOnBackPressedDispatcher
öğesini almak için artık Activity-Compose 1.3.0-alpha01 içindeki yeniLocalOnBackPressedDispatcherOwner
özelliğini kullanıyor. (I65b12)
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 birgetBackStackEntry(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()
venavigateUp()
öğ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
- Gezinme oluşturma oluşturma, artık popUpTo kullanımı ve launchsingleTop işlemleri (If96c3, b/171468994) için NavOptions'ı destekliyor
- Gezinme Oluşturma DSL'sinde iç içe yerleştirilmiş grafikler oluşturmanıza olanak tanıyan bir kimlik yerine rotayı alan gezinme işlevi eklendi. (I1661d)
- startDestination, NavHost (Ie620e) parametreleri listesinde rotadan önce geliyor.
- Artık rotayı NavHost composable'ın dışında başlangıç hedefi olarak kullanarak bir grafik oluşturabilirsiniz. (Iceb75)
Sürüm 1.0.0-alpha01
28 Ekim 2020
android.navigation:navigation-compose:1.0.0-alpha01
yayınlandı. 1.0.0-alpha01 sürümü bu 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
öğesiniNavHost
dışındaki composable'lara (alt gezinme çubuğu gibi) bağlamaya izin vermek içinrememberNavController()
vecurrentBackStackEntryAsState()
ü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
- Bir
NavDeepLinkRequest
veyaUri
kullanarak gezinirken artık, harici derin bağlantılarda zaten mevcut olan işlevleri yansıtarak,KEY_DEEP_LINK_INTENT
aracılığıyla bağımsız değişkenlerden niyeti alarak sonuçtaki hedeftekiUri
, işlem ve mime türüne erişebilirsiniz. (I975c3, b/181521877)
Hata Düzeltmeleri
- Yaşam Döngüsü Sahibi artık Etkinlik Yaşam Döngüsü
STOPPED
olduğunda ve sonrasındaSTARTED
(Iff94f, b/182284739) olduğu içinOnBackPressedCallbacks
,NavBackStackEntry
aracılığıyla bir görev dağıtıcıya eklendi. - 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
, hemwww.example.com
hem dewww.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 de0x
ö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çinandroid:defaultValue
, artık tam sayı varsayılan değerlerini desteklemektedir. Böylece,0.0
kullanımını zorunlu tutmak yerineandroid: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)
- Önceden ayarlanmış aynı nesneyle
setViewModelStore
veyasetLifecycleOwner
çağrısı yapmak artık işlemsiz olacak (Idf491, b/177825470) - Safe-Args artık Java'yı kullanırken uygun yöntemlere engelleme ek açıklamaları ekliyor. (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çinJvmName
teşekkür ederiz. (#127, b/179166693)app:argType=”float”
içeren bir bağımsız değişkendedefaultValue
uygulamasına izin vermek amacıyla pull isteği için teşekkürlertatocaster
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
Lifecycle
değeriCREATED
hedefine taşınmadan önceNavBackStackEntry
açılırken artık kilitlenme yok. (Ie3ba3)- b/171364502 kaynaklı regresyon düzeltildi. Bu durumda, animasyon kaynağı değeri
0
olan bir etkinliğe gitmeninResourceNotFoundException
nedeni var. (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şkenlerinOnDestinationChangedListener
ö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
ilenavigate()
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
veNavigation.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 Çekmece Düzeni 1.1.1'e bağımlı. Bu şekildeNavigationUI
,LOCK_MODE_LOCKED_CLOSED
veyaLOCK_MODE_LOCKED_OPEN
kullanılırken bile çekmeceyi açabiliyor. (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
venavigation-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 birTestNavHostController
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 birSavedStateHandle
ü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çinNavigationUI
desteği:NavigationUI
ürünündeDrawerLayout
ürününün tüm kullanımları CustomView1.1.0
içinde eklenen ve DrawerLayout1.1.0
çekmecesindeDrawerLayout
tarafından uygulanan daha genelOpenable
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ıraapp:action
veapp:mimeType
özelliklerini de destekleyecek şekilde genişletildi.NavController
, artık yeniNavDeepLinkRequest
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ştirilirkenNullPointerException
düzeltildi. (b/158006669) NavController
tarafından bildirilen tümdestination is unknown
istisnaları artıkNavController
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
öğesininLifecycle
öğesinin düzgün şekilde güncellenmemesine neden olan sorun düzeltildi. (b/155218371) setGraph()
çağrısından önce kaydedilenOnDestinationChangedListener
örnek artık işlem iptalinden sonra geri yüklenen hedefe düzgün şekilde gönderiliyor. (b/155218371)singleTop
kullanılırkenNavBackStackEntry
artık doğru şekilde bağımsız olarak güncellenir ve güncellenen bağımsız değişkenler tümOnDestinationChangeListener
örneklerine gönderilir. (b/156545508)
Bağımlılık Güncellemeleri
NavigationUI
yapısı artık CustomView1.1.0-rc01
ve DrawerLayout1.1.0-rc01
özelliklerine bağlıdır. (aosp/1309696)
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 olarakapp:action
veapp:mimeType
özelliklerini de destekleyecek şekilde genişletildi. NavController artık yeniNavDeepLinkRequest
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ıkapp:graphPackage
belirtmeniz gerekmez.applicationId
bölümüne bir noktadan sonramoduleName
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ştururkenIllegalStateException
sorunu düzeltildi. (b/147378752)
Bağımlılık güncellemeleri
- Gezinme artık
1.2.4
Parça'ya bağlıdır. (aosp/1277325) - Dinamik Gezinme artık Play Core
1.7.2
'a bağlıdır. (aosp/1282257)
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şturucusundaActivity
yerineContext
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
AppBarConfiguration
, somutDrawerLayout
sınıfını kullanmak yerine artık CustomView1.1.0-alpha02
'da sunulanOpenable
arayüzünü kullanır (Bu,DrawerLayout
DrawerLayout1.1.0-alpha04
tarihinden itibaren geçerlidir) veNavigationUI
ileOpenable
ö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ümNavArgs
örnekleri yerine kullanılanNavArgs
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, Core1.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 Çekirdek1.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 birSavedStateHandle
'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ıylagetCurrentBackStackEntry()
vegetPreviousBackStackEntry()
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 veKEY_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 birNavController
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çinnavigation-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ıknavigation-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
- Gezinme
2.2.1
'den:2.2.1
gezinmesi artık Yaşam Döngüsü ViewModel SavedState2.2.0
ve Parça1.2.1
'a dayalı.
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 çıkanIllegalStateException
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ümNavArgs
örnekleri yerine kullanılanNavArgs
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
- Gezinme artık
1.2.4
Parça'ya bağlıdır. (aosp/1277325)
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çinnavigation-ui
ProGuard kuralları,android.enableJetifier=true
gerekliliğinin gerekmediğinden emin olacak şekilde güncellendi. (b/147610424)navigation-common-ktx
modülü artıknavigation-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
2.2.1
gezinmesi artık Yaşam Döngüsü ViewModel SavedState2.2.0
ve1.2.1
Parçası'na bağımlı.
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()
'i çağırarak arka yığında bir hedefin veya gezinme grafiğinin kimliğini iletebilirsiniz. DöndürülenNavBackStackEntry
, ilgili hedefi başlatmak için kullanılan bağımsız değişkenlerin yanı sıra, Gezinme odaklı birLifecycleOwner
,ViewModelStoreOwner
(NavController.getViewModelStoreOwner()
tarafından döndürülen bağımsız değişken) veSavedStateRegistryOwner
sağlar. - Yaşam Döngüsü ViewModel SavedState Entegrasyonu:
SavedStateViewModelFactory
, artıkNavController.getBackStackEntry()
veyaNavController.getViewModelStoreOwner()
tarafından döndürülen birViewModelStoreOwner
ileby navGraphViewModels()
veyaViewModelProvider
oluşturucusu kullanılırken kullanılan varsayılan fabrika oldu. - Derin Bağlantılar İçin Sorgu Parametresi Desteği: Sorgu parametrelerine sahip derin bağlantılar, artık yeniden sıralanmış sorgu parametrelerini desteklemektedir. Varsayılan değere sahip veya boş değerli olan bağımsız değişkenler artık derin bağlantıları eşleştirirken isteğe bağlıdır.
- İyileştirilmiş Animasyon Desteği:
NavHostFragment
artık Parça 1.2.0'danFragmentContainerView
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ça1.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 SavedState1.0.0-rc03
,1.1.0-rc03
Etkinliği ve1.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ıktoString()
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
üzerindekinavArgs()
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ırkenNavigationUI
, 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 sonrasetViewModelStore()
arandığında artıkIllegalStateException
ile sonuçlanıyor. TümNavBackStackEntry
örneklerininViewModel
örnekleri için tutarlı bir depolamaya sahip olmasını sağlamak amacıyla bu değer, ilk kurulumun bir parçası olarak her zamanNavHost
tarafından ayarlanmalıdır. (aosp/1111821)
Hata düzeltmeleri
- Kapsamında
ViewModelStore
örnekleri olan birden fazla farklı gezinme grafiğine ekliViewModel
örnekleri kullanılırkenConcurrentModificationException
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. Varsayılan değere sahip olan veya boş değer atanabilen bağımsız değişkenler artık derin bağlantılarla eşleşirken isteğe bağlı. (b/133273839)
- Artık
NavController.getBackStackEntry()
öğesini çağırarak arka yığında bir hedefin veya gezinme grafiğinin kimliğini iletebilirsiniz. DöndürülenNavBackStackEntry
, ilgili hedefi başlatmak için kullanılan bağımsız değişkenlerin yanı sıra, Gezinme odaklı birLifecycleOwner
,ViewModelStoreOwner
(NavController.getViewModelStoreOwner()
tarafından döndürülen bağımsız değişken) veSavedStateRegistryOwner
sağlar. (aosp/1101691, aosp/1101710)
Hata düzeltmeleri
ViewPager2
öğesineNavHostFragment
ekleme işlemininIllegalArgumentException
ile başarısız olmasına neden olan sorun düzeltildi. (b/133640271)NavInflater
artıkgetResourceName()
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ıkNavController.getViewModelStoreOwner()
tarafından döndürülenby navGraphViewModels()
veyaViewModelStoreOwner
ileViewModelProvider
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 veNavController
itibarıyla desteği sonlandırılmışgetViewModelStore()
API kaldırıldı. (aosp/1091021)
Hata düzeltmeleri
NavHostFragment
artıkFragmentContainerView
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ı veyaNavController
ürününe eklenengetViewModelStoreOwner()
API'sini kullanarak Kotlin kullanıcıları içinby 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ğunuzdaDialogFragment
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 kullananUri
kullanaraknavigate
yapabilirsiniz. Daha fazla bilgi için Uri kullanarak gezinme konusuna bakın. - NavHostController: Özellikle özel bir
NavHost
oluşturmak için kullanılan API'lerNavHostController
hizmetine taşındı. Böylece uygulamalar,NavController
API'lerini barındıranLifecycleOwner
,OnBackPressedDispatcher
veViewModelStore
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 ve2.1.0-alpha02
kapsamındaki desteği sonlandırılangetViewModelStore()
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ıkToolbar
veyaCollapsingToolbarLayout
ilesetupWithNavController()
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ıknavigation-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 sistemindegetViewModelStore()
API desteği sonlandırılarak yerineViewModelStoreOwner
döndüren yenigetViewModelStoreOwner()
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ıkFloatingWindow
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ı veNavController
adlı yeni bir alt sınıfa taşındı:NavHostController
. (aosp/966091)NavController
setHostOnBackPressedDispatcherOwner()
yöntemi,NavHostController
ile ilişkilisetOnBackPressedDispatcher()
yöntemiyle değiştirildi ve artık çağrı yapmadan öncesetLifecycleOwner()
yöntemini çağırmanızı gerektiriyor. (aosp/965409)NavHostController
artık daha öncesetHostOnBackPressedDispatcherOwner()
tarafından döndürülenNavHostOnBackPressedManager
sınıfının yerini alan birenableOnBackPressed(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 ederkenapp:defaultNavHost
politikasını doğru bir şekilde gözeterek Gezinme2.1.0-alpha03
'deki regresyonu düzeltir. b/132077777DialogFragmentNavigator
artıkpopBackStack()
venavigateUp()
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çinnavigate
işlemini gerçekleştirdiğinizdeDialogFragment
gösterilir.NavHostFragment
, varsayılan olarak iletişim kutusu hedeflerini destekler. b/80267254 navigate
öğesini bir kaynak kimliği veyaNavDirections
örneğiyle çağırmanın yanı sıra artık doğru hedefe gitmek için bir hedefe eklediğiniz<deepLink>
öğesini kullanan birUri
aracılığıyla 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çincreateFragmentNavigator()
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 yenionCreateNavController()
yöntemine taşındı. b/122802849- Belirli bir
Uri
öğesinin, ilgili hedef veyaNavGraph
kullanılması durumunda gezinme grafiğindeki herhangi bir hedef tarafından işlenip işlenemeyeceğini kontrol etmenizi sağlamak içinNavDestination
uygulamasınahasDeepLink()
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ıkOnBackPressedDispatcher
kullanarak sistemdeki Geri etkinliklere müdahale ediyor. Bu sayede, bir Parçaya döndüğünde 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 birandroid:defaultValue=”@null”
, artıkstring
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 veyaNavController
ürününe eklenengetViewModelStore()
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>
hedefineapp:targetPackage
ekleyebilirsiniz. Paketi kendi uygulama kimliğinizle kısıtlamak içinapp:targetPackage="${applicationId}"
öğesini destekler. b/110975456
Hata düzeltmeleri
<activity>
hedefleri içinandroid:name
artık enflasyon zamanında bir Sınıf olarak ayrıştırılmıyor. Bu durum, dinamik özellikler kullanılırken ClassNotFoundExceptions durumlarını 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
- Gezinme artık
androidx.core:core:1.0.1
veandroidx.fragment:fragment:1.1.0-alpha05
uygulamasına bağlı. Bu sürüm,androidx.legacy:legacy-support-core-utils:1.0.0
bağımlılığını da ortadan kaldırır. b/128632612
API Değişiklikleri
- Kaynak kimliği ve Paket ile tıklama işleyici oluşturmaya alternatif olarak yeni bir
Navigation.createNavigateOnClickListener(NavDirections)
yöntemi eklenmiştir.b/127631752 FragmentNavigator.instantiateFragment
desteği sonlandırıldı. Varsayılan uygulama, Parçaları örneklendirmek için artıkFragmentFactory
kullanıyor. b/119054429
Hata Düzeltmeleri
- Gezinme, bir hedefe ekli bağımsız değişkenler olduğunda artık null
Bundle
göndermez veandroid:defaultValue="@null"
kullanılırken bir sorun düzeltilir. b/128531879 - Güvenli argümanlar artık KotlinPoet 1.1.0'a bağlı olarak çok uzun paket adlarıyla ilgili bir sorunu düzeltmektedir. 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
grup kimliğiyle yeni yapılar sağlar ve bağımlılıklarını AndroidX eşdeğerleriyle değiştirir.
2.0.0-rc02'nin davranışı, Gezinme 1.0.0-rc02 davranışıyla aynıdır ve bağımlılıklarınızı yeni bağımlılıklarla eşleşecek şekilde güncellemenin yanı sıra, kodunuzda 1.0.0-rc02 sürümünden güncelleme yapmak için herhangi bir değişiklik gerekmez.
Navigasyon'un 2.X sürümlerini kullanmak için projenizin AndroidX'e taşınmış olması gerekir. Gezinme 1.0 kararlı sürümü, Destek Kitaplığı bağımlılıklarını kullanan son sürüm olacak. 1.0'dan sonraki tüm geliştirmeler AndroidX'i temel alacak ve 2.0 kararlı sürümünü temel alacaktır.
AndroidX Öncesi Bağımlılıkları
Navigasyon'un AndroidX öncesi sürümleri için ş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ıza aşağıdaki classpath'i ekleyin
buildscript {
repositories {
google()
}
dependencies {
classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0"
}
}
Sürüm 1.0.0
Sürüm 1.0.0
14 Mart 2019
1.0.0-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 grafiğin b/126251695 kimliği yoksa
popBackStack()
öğesinin yok sayılmasına neden olan sorun düzeltildi navigateUp()
artıkFLAG_ACTIVITY_NEW_TASK
olmadan bir derin bağlantı işlendikten sonra çağrıldığında uygulamanızın görevine geri gitmeyi doğru şekilde işliyor b/126082008ActivityNavigator.applyPopAnimationsToPendingTransition
öğesinin doğru pop çıkış animasyonunun uygulanmamasıyla ilgili sorun düzeltildi b/126237567- Güvenli Bağımsız Değişkenler tarafından oluşturulan Kotlin kodu,
R
sınıfıyla ilişkili paket adındain
vefun
gibi Kotlin anahtar kelimelerinin çıkışını artık düzgün şekilde yapıyor. 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 bir hata düzeltmesi içeriyor.
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çinandroid:defaultValue
olarak0
kullanabilirsiniz. b/124248602
Davranış değişiklikleri
- Tam derin bağlantı eşlemeleri artık
.*
içeren derin bağlantılara veya bağımsız değişken eşlemelerine göre önceliklendiriliyor. b/123969518
Hata Düzeltmeleri
popBackStack()
venavigateUp
, arka yığındaki son hedef açılırken1.0.0-beta01
ürününde ortaya çıkan regresyonu düzelterek artıkfalse
doğru şekilde döndürülüyor. b/123933201- Gezinme artık kaydedilmiş örnek durumunun geri yüklenmesi sırasında
ClassLoader
öğesini doğru şekilde ayarlıyor. Böylece, kayıtlı durumdaNavigator
durumundaki özel sınıfları veya birNavDestination
öğesine gönderilen bağımsız değişkenlerde sorun yaşanmayacaktır. b/123893858 - Kayıtlı örnek durumundan bir
Parcelable[]
bağımsız değişkeni geri yüklenirken, Güvenli args tarafından oluşturulan NavArgs sınıfları artık çökmüyor. 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. Bundan sonra, kritik bir sorun olmadığı sürece Navigation API'nin bir sonraki sürüme kadar kararlı kalması beklenmektedir. 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şken varsayılan değerlerinin çalışma zamanında ve Güvenli Bağımsız Değişkenler aracılığıyla aynı şekilde ele alınmasını sağlıyor. Sonuç olarak, yalnızca
app:argType="reference"
içeren bağımsız değişkenlerin varsayılan değer noktası başka bir kaynağa (örneğin,@color/colorPrimary
) sahip olabilir. Farklı birapp:argType
ile bir varsayılan referans değeri kullanılmaya çalışılması, gezinme XML'i ayrıştırılırken bir istisnayla sonuçlanı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 Android Gradle Eklentisi'nin tüm sürümlerindeki kitaplık ve özellik modüllerinde kullanılabilir. b/121304903
- Tek bir
popBackStack()
işleminin tek bir hedef yerine, bir hedefin tüm kopyalarını arka yığının üst kısmından çıkarmasına neden olan regresyon düzeltildi. b/123552990 FragmentNavigator
durumunun,NavController
durumuyla senkronize olmaması ve arka yığını geri yüklemeye çalışırkenIllegalStateException
hatasına neden olması sorunu düzeltildi.b/123803044- ProGuard kod karartma ile kullanıldığında
NavigationUI
işlenen geri okunun görünmemesine neden olan sorun düzeltildi. b/123449431 - Güvenli Bağımsız Değişkenler tarafından oluşturulan kod artık
.OuterClass$InnerClass
biçimindeki statik iç sınıfa işaret eden birapp:argType
kullanarak düzgün şekilde işliyor. b/123736741 - Güvenli Bağımsız Değişkenler tarafından oluşturulan Java kodu artık global işlemleri ve derinlemesine iç içe yerleştirilmiş hedefleri düzgün şekilde işliyor. b/123347762
Sürüm 1.0.0-alpha11
23 Ocak 2019
Bu, 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 genel işlemlerle ilişkili Yol Tarifi sınıfını içe aktaramaması sorunu düzeltildi. 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şiklikleri 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
Activity
veyaFragment
içinde oluşturulanNavArgs
sınıfına ilişkin Güvenli argümanlara ilişkin referansları geç bir şekilde almak içinby navArgs()
özelliği temsilcisini kullanabilir. b/122603367 - Safe Args'ler artık
androidx.navigation.safeargs.kotlin
eklentisini uygulayarak Kotlin kodu oluşturmanıza olanak tanıyor. Kotlin kodu, yalnızca Kotlin modülleri için özel olarak oluşturulmuştur. Bu kod, eskiandroidx.navigation.safeargs
eklentisiyle hâlâ kullanılabilen oluşturucu kalıbı üzerinden varsayılan bağımsız değişkenler ve sabit sınıflar kullanılarak oluşturulmuştur. b/110263087
Davranış Değişiklikleri
- Eşleşen derin bağlantılar artık en fazla eşleşen bağımsız değişkenlere sahip derin bağlantıya ağırlık veriyor. b/118393029
NavController
cihazındasetGraph()
çağrısı yapıldığında arkadaki yığın sıfırlanacak. b/111450672- Bilinmeyen derin bağlantılar artık
IllegalStateException
tetiklemez ancak yok sayılır. İç içe yerleştirilmiş veya birden çokNavHostFragment
ile ilgili sorunlar düzeltilir. b/121340440
Çarpıcı Değişiklikler
- Pop animasyonlarını bir etkinliğe uygulamak için kullanılan
NavOptions.applyPopAnimationsToPendingTransition()
yöntemiActivityNavigator
klasörüne taşındı. b/122413117 - Güvenli Bağımsız Değişkenler artık bağımsız değişken içermeyen işlemler için özdeş sınıfların kopyalanmasını önler. Oluşturulan NavDirections sınıflarındaki bağımsız değişken olmayan yöntemlerin dönüş türü artık
NavDirections
olur. b/123233147 - Güvenli Arg'ler tarafından oluşturulan Yol Tarifi sınıflarının artık herkese açık oluşturucusu yoktur. Yalnızca oluşturulan statik yöntemlerle etkileşimde bulunmanız gerekir. b/123031660
- Oluşturulan
NavDirections
sınıfların artık herkese açık oluşturucusu yoktur. Yalnızca oluşturulan Yol Tarifi sınıflarındaki statik yöntemlerle oluşturulmalıdırlar.b/122963206 NavDirections
'getArguments()
adlı kullanıcıdan döndürülenBundle
artık@Nullable
yerine@NonNull
olarak işaretlendi. b/123243957
Hata Düzeltmeleri
NavDeepLinkBuilder
artık benzersizliği belirlemek için, aktardığınız bağımsız değişkenleri kullanarak aynı hedefe yönelik birden fazla eş zamanlıPendingIntent
öğesini doğru şekilde işliyor. b/120042732NavController
artık iç içe yerleştirilmişNavHostFragment
veya arka yığına sahip diğer alt Parçalar kullanılırkenpopBackStack()
işlemlerini doğru şekilde işliyor.b/122770335NavigationUI
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 bir hedefteki işlemle aynı kimliğe sahip genel işlemleri doğru şekilde işliyor. b/122962504
- Güvenli Bağımsız Değişkenler,
equals()
doğru değerini döndürdüğünde artık doğru şekildehashCode()
değerine sahip olanNavDirections
sınıfa sahip. b/123043662 NavHostFragment
öğesininFragmentManager
öğesinde özelFragmentTransactions
yapmayı denersenizFragmentNavigator
artık daha iyi bir hata mesajı veriyor. Her zamangetChildFragmentManager()
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şiklikleri içeriyor. Lütfen aşağıdaki Zarar Veren Değişiklikler bölümüne bakın.
android.arch.navigation:navigation-testing
yapısının geliştirmeye devam etmemeyi tercih ettik. NavController
dahili testinde faydalı olduğu kanıtlanmış olsa da, doğru navigate()
çağrılarının yapıldığını doğrulamak için NavController
örneğiyle alay etmek gibi alternatif test stratejilerini kullanmanızı önemle tavsiye ederiz. Bu yaklaşım, AndroidDevSummit 2018'deki Tek Etkinlik konuşmasında ayrıntılı olarak ele alınmıştır. Ayrıca, özellikle Navigasyon ile testlerle ilgili ek dokümanlar üzerinde çalışacağız.
Yeni Özellikler
menuCategory="secondary"
içerenMenuItem
öğeleri,NavigationUI
yöntemleriyle kullanıldığında artık arka yığını açmaz. b/120104424AppBarConfiguration
artıknavController.navigateUp()
false
geri döndüğünde çağrılacak bir yedekOnNavigateUpListener
örneği ayarlamanıza olanak tanıyor. b/79993862 b/120690961
Çarpıcı Değişiklikler
argType="reference"
içeren bir<argument>
kullanılırken, Gezinme artık referansı ayrıştırmaz, ham kaynak kimliğini sağlar.b/111736515onNavDestinationSelected()
artık varsayılan olarak gezinme grafiğinizin başlangıç konumuna geri dönüyor. Bu sayedesetup
yöntemleriyle tutarlı hale geliyorlar. Arka yığının açılmaması içinMenuItem
öğenizemenuCategory="secondary"
ekleyin. aosp/852869- Oluşturulan
Args
sınıflarınınfromBundle()
yöntemleri artık boş değer atanabilen birBundle
yerine null olmayan birBundle
aosp/845616 alıyor.
Hata Düzeltmeleri
- Bağımsız değişkenler artık derin bağlantılardan her zaman dize yerine doğru
argType
olarak ayrıştırılıyor. 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şiklikleri içeriyor. Lütfen aşağıdaki Zarar Veren Değişiklikler bölümüne bakın.
Yeni Özellikler
NavigationUI
yöntemleriyle kullanıldığında hedef etiketler, artıkandroid:label
etiketinizdeki{argName}
örneği doğru b/80267266 bağımsız değişkeniyle otomatik olarak değiştirecek- Gezinme artık Destek Kitaplığı 28.0.0'a dayalı b/120293333
Çarpıcı Değişiklikler
OnNavigatedListener
,OnDestinationChangedListener
olarak yeniden adlandırıldı b/118670572OnDestinationChangedListener
artıkBundle
bağımsız değişkeni de iletiyor aosp/837142app:clearTask
veapp:launchDocument
özellikleri ve bunlarla ilişkili yöntemler kaldırıldı. Arka yığınınızdaki tüm hedefleri kaldırmak için grafiğinizin kökündeapp:popUpTo
kullanın. b/119628354ActivityNavigator.Extras
artıkBuilder
kalıbı kullanıyor ve tümIntent.FLAG_ACTIVITY_
işaretlerini aosp/828140 ayarlama özelliğini ekliyorNavController.onHandleDeepLink
,handleDeepLink
aosp/836063 olarak yeniden adlandırıldı- Alt sınıflandırmaya yönelik olmayan
NavOptions
,NavInflater
,NavDeepLinkBuilder
veAppBarConfiguration
gibi birçok sınıf ve yöntem geliştirilmiştirfinal
aosp/835681 - Desteği sonlandırılan
NavHostFragment.setGraph()
yöntemi kaldırıldı aosp/835684 - Kullanımdan kaldırılan
NavigationUI.navigateUp(DrawerLayout, NavController)
yöntemi kaldırıldı. aosp/835684 - Parça oluşturma işlemi
FragmentNavigator
bölümüne taşındı. Bu sayede, birFragmentFactory
öğesine Parça oluşturma yetkisi vermek artık daha kolay. b/119054429 NavGraphNavigator
oluşturucusu artıkContext
aosp/835340 almıyor- NavigatorProvider bir arayüz değil, bir sınıf oldu.
getNavigatorProvider()
tarafından döndürülenNavigatorProvider
, işlevselliğini değiştirmedi. aosp/830660 NavDestination.navigate()
kaldırıldı. Bunun yerineNavigator
numaralı telefondannavigate()
adlı kuruluşu arayın. aosp/830663Navigator
için önemli ölçüde yeniden düzenleme,OnNavigatorNavigatedListener
ihtiyacını ortadan kaldırma ve bunun yerinenavigate
ürününün gidilenNavDestination
öğesini döndürmesi.Navigator
örnekleri artık pop etkinlikleriniNavController
öğesine gönderemiyor. Geri düğmesine basmaları durdurmak venavController.popBackStack()
işlevini çağırmak içinOnBackPressedCallback
kullanabilirsiniz. aosp/833716
Hata Düzeltmeleri
- Hedef,
<navigation>
öğesi b/116831650 olduğundapopUpTo
artık tutarlı şekilde çalışıyor - İç içe yerleştirilmiş grafikler kullanılırken
IllegalArgumentException
hatasına neden olan çeşitli hatalar düzeltildi b/118713731 b/113611083 b/113346925 b/113305559 <activity>
hedeflerinindataPattern
özelliği artıktoString()
b/120161365 çağrısı yaparak Dize olmayan bağımsız değişkenlerden bağımsız değişkenleri dolduracak.
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. Enum türleri, sınıf adı olmadan numaralandırma sabit değerini kullanarak varsayılan bir değer ayarlayabilir
(ör.
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 olan 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ı, üst düzey hedef olarak kabul edilecek hedefleri özelleştirmenize olanak tanır. Ayrıntılar için güncellenen belgelere göz atın. 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ü,navigation-testing artifact
içine katlandı ve artık yayınlanmayacak.navigation-testing
yapısı artık Kotlin standart kitaplığına bağımlıdır. API, Kotlin kurallarına daha uygun olacak şekilde değiştirilmiştir. Ancak Java'da yazılan testlerde bu API'yi kullanmaya devam edebilirsiniz.- Meta veri manifestinde kayıtlı gezinme grafikleri artık desteklenmiyor. b/118355937
- İşlemler artık <activity> hedeflerine eklenemez. aosp/785539
Hata Düzeltmeleri
- Derin bağlantılar artık sorgu parametrelerini doğru şekilde ayrıştırıyor. b/110057514
- Etkinlik hedefleri artık tüm giriş ve çıkış animasyonlarını doğru şekilde uyguluyor. b/117145284
- Özel Gezginler kullanılırken yapılandırma değişikliklerinden sonra ortaya çıkan kilitlenme düzeltildi. b/110763345
Güvenli 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> grafiği için Yol Tarifi oluşturmayla ilgili sorun düzeltildi. b/116542123
Sürüm 1.0.0-alpha06
20 Eylül 2018
Yeni Özellikler
- Parça ve etkinlik hedefleri için paylaşılan öğe geçişleri artık b/79665225 desteklenmektedir. Daha fazla bilgi için Gezinme Mimarisi Bileşeni ile gezinmeyi uygulama konusuna bakın.
NavigationView
içinde bir öğe seçtiğinizde bunu içeren tüm alt sayfalar b/112158843 kapatılır
API Değişiklikleri
- Çarpıcı Değişiklik: Navigator
navigate()
yöntemi artıkNavigator.Extras
parametresini almaktadır. - NavController'ın
getGraph()
yöntemi artıkNonNull
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ıyoronSaveState()
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
- Yanlış geri yığın davranışına neden olan bir hatayı düzeltin. b/111907708
- Oluşturulan Bağımsız Değişkenlerin
equals()
sınıfındaki bir hatayı düzeltin. b/111450897 - Güvenli Bağımsız Değişkenler'de derleme hatasını düzeltme. 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çinapp: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
- Ör.
- 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()
vehashCode()
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ıksetReorderingAllowed(true)
kullanıyor. b/109826220Gezinme 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ında bulunurken karşılaşılan
IllegalStateException
düzeltildi. b/79632233Animasyonlar kullanılırken titreme sorununu düzeltmek için artık Destek Kitaplığı 27.1.1'i kullanmanız gerekir. b/80160903
Alt parça olarak defaultNavHost="true" kullanılırken
IllegalArgumentException
sorunu düzeltildi. b/79656847NavDeepLinkBuilder 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/80453447launchSingleTop
kullanılırken çakışan Parçalarla ilgili bir sorun düzeltildi. b/79407969Gezinme 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çinclearTask
özelliği ve ilişkili API kullanımdan kaldırıldı. b/80338878NavOptions
ürününde işlemler içinlaunchDocument
ö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 gezinme oluşturmak için bir çerçeve sağlar. Bu ilk sürüm 1.0.0-alpha01
.