Navigasyon
Son Güncelleme | Kararlı Sürüm | Yayın Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
4 Eylül 2024 | 2.8.0 | - | - | - |
Bağımlılıkları bildirme
Gezinme'ye bağımlılık eklemek için şuraya Google Maven deposunu eklemeniz gerekir: belirler. Google'ın Maven deposunu okuyun konulu videomuzu izleyin.
build.gradle
dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin.
uygulamanız veya modülünüz:
Eski
dependencies { def nav_version = "2.8.0" // Jetpack Compose Integration implementation "androidx.navigation:navigation-compose:$nav_version" // Views/Fragments Integration implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // Feature module support for Fragments implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version" // Testing Navigation androidTestImplementation "androidx.navigation:navigation-testing:$nav_version" }
Kotlin
dependencies { val nav_version = "2.8.0" // Jetpack Compose integration implementation("androidx.navigation:navigation-compose:$nav_version") // Views/Fragments integration implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") // Feature module support for Fragments implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version") // Testing Navigation androidTestImplementation("androidx.navigation:navigation-testing:$nav_version") }
Safe Args
Güvenli Bağımsız Değişkenler eklemek için
üst düzey build.gradle
dosyanıza aşağıdaki classpath
öğesini ekleyin:
Eski
buildscript { repositories { google() } dependencies { def nav_version = "2.8.0" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" } }
Kotlin
buildscript { repositories { google() } dependencies { val nav_version = "2.8.0" classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version") } }
Mevcut iki eklentiden birini de uygulamanız gerekir.
Java veya karma Java ve Kotlin modüllerine uygun Java dil kodu oluşturmak için
bu satırı uygulamanızın veya modülünüzün build.gradle
dosyasına ekleyin:
Eski
plugins { id 'androidx.navigation.safeargs' }
Kotlin
plugins { id("androidx.navigation.safeargs") }
Alternatif olarak, Kotlin'e özel modüllere uygun Kotlin kodu oluşturmak için şunu ekleyin:
Eski
plugins { id 'androidx.navigation.safeargs.kotlin' }
Kotlin
plugins { id("androidx.navigation.safeargs.kotlin") }
android.useAndroidX=true
gradle.properties
dosya
AndroidX'e taşıma.
Kotlin uzantılarını kullanma hakkında bilgi için ktx dokümanlarına bakın.
Bağımlılıklar hakkında daha fazla bilgi için Derleme Bağımlılıkları Ekleme bölümüne bakın.
Geri bildirim
Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.
Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.
Sürüm 2.8
Sürüm 2.8.0
4 Eylül 2024
androidx.navigation:navigation-*:2.8.0
yayınlandı. Sürüm 2.8.0 bu kaydetmeleri içerir.
2.7.0'dan bu yana önemli değişiklikler
Gezinme Kotlin DSL Türü-Güvenlik
- Navigasyon, artık Kotlin Serileştirme özelliğini kullanarak Kotlin DSL (Gezinme Yazma özelliği tarafından kullanılır) için tür güvenliği sağlar. Böylece, gezinme grafiğinizde tür güvenli nesneler ve veri sınıfları aracılığıyla hedefler tanımlayabilirsiniz.
// 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.
Gezinme - Oluşturma Tahmine Dayalı Geri
- 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.
Gezinme Parçası Oluşturulabilir
- Gezinme XML dosyalarınıza derlenebilir hedefler eklemenize olanak tanıyan,
NavHostFragment
yerineComposableNavHostFragment
alternatifi içeren yeni birnavigation-fragment-compose
yapısı eklendi. 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.
// 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" />
Diğer Değişiklikler
- Oluşturma bölümünde gezinme artık Compose 1.7.0 sürümüne bağlı.
- Gezinme artık liste, dizi ve harita gibi koleksiyon tabanlı bağımsız değişkenler için
NavType<T>
alt sınıfı olan yeni birCollectionNavType<T>
sınıfı sağlıyor. VarsayılanNavType
dizilerinin tümü (IntArrayType
,LongArrayType
,FloatArrayType
,BoolArrayType
veStringArrayType
) artık bu yeni sınıftan devralınıyor. NavType
artık Int, String, Boole, Kayan ve Uzun Listeleri için yerleşik desteğe sahiptir.
Sürüm 2.8.0-rc01
21 Ağustos 2024
androidx.navigation:navigation-*:2.8.0-rc01
yayınlandı. Sürüm 2.8.0-rc01 bu kayıtları içerir.
Hata Düzeltmeleri
- Üst düzey Enum sınıfları, tür güvenli bağımsız değişkenler olarak geçirilirken gezinme kilitlenmesi düzeltildi. (I0ba76, b/358137294)
- Gezinme 2.8 artık SDK 34 ile doğru şekilde çalışmaktadır ve diğer AndroidX kitaplıklarıyla birlikte 2.9 sürümüne kadar SDK 35'e geçmeyecektir. (b/358798728)
Sürüm 2.8.0-beta07
7 Ağustos 2024
androidx.navigation:navigation-*:2.8.0-beta07
yayınlandı. Sürüm 2.8.0-beta07 bu kayıtları içerir.
Bilinen Sorunlar
- b/358137294 nedeniyle yalnızca başka bir sınıfa yerleştirilmiş enum'lar kullanıma hazır olarak desteklenir. Üst düzey sıralamalar sonraki sürümde desteklenecektir.
Hata Düzeltmeleri
- Yinelenen veya paylaşılan hedeflere gidildiğinde navigasyon, grafikteki mevcut konumdan en yakın eşleşen hedefe gitmeye öncelik verir. (Ic89a4, b/352006850)
- Güvenli bağımsız değişkenlerde navigasyona yeni bir
NavType.EnumType
eklendi. Bu,Enum
türleri için artık özelNavType
gerekmediği anlamına gelir.Enum
öğesininSerialName
değerinin, varsayılan tam nitelikli ad olması gerektiğini unutmayın. (I66d22, b/346475493) - Güvenli bağımsız değişkenlerde gezinmeye
Int?
,Long?
,Float?
,Boolean?
veEnum<*>?
gibi boş değer atanabilir bağımsız değişken türleri için yerleşik destek eklendi. (I32d13,I1c580,Ifba66,I978b0,Ide076 , b/351994237) NavGraph
öğesine iletilenstartDestination
rotası,startDestination.route
ile tam olarak eşitseNavGraph
öğesininstartDestination
özelliği artık varsayılan bağımsız değişken değerlerini kullanacak. (I13762, b/354046047)
Sürüm 2.8.0-beta06
24 Temmuz 2024
androidx.navigation:navigation-*:2.8.0-beta06
yayınlandı. Sürüm 2.8.0-beta06 bu kayıtları içerir.
Hata Düzeltmeleri
WrongStartDestinationType
lint kontrollerinin, iletilen sınıf türünde Tamamlayıcı nesneleri kontrol edememesine neden olan sorun düzeltildi. (I92b09)
Sürüm 2.8.0-beta05
10 Temmuz 2024
androidx.navigation:navigation-*:2.8.0-beta05
yayınlandı. Sürüm 2.8.0-beta05 bu kayıtları içerir.
Hata Düzeltmeleri
- İç içe yerleştirilmiş
NavGraphs
, aynıstartDestination
rotasını paylaştığındasingleTop
gezinme kilitlenmesi düzeltildi. (I17b94, b/294408596)
Sürüm 2.8.0-beta04
26 Haziran 2024
androidx.navigation:navigation-*:2.8.0-beta04
yayınlandı. Sürüm 2.8.0-beta04 bu kayıtları içerir.
Hata Düzeltmeleri
- Gezinme artık yol bağımsız değişkenlerinde boş dizelerle gezinmeyi destekliyor. (Ic5dbd, b/339481310)
- Şu anda desteklenmeyen bir özellik olduğunu netleştirmek için
@Serializable(with =...)
aracılığıyla doğrudan sınıf alanlarında tanımlanan özel serileştiricilerle ilgili hata mesajını iyileştirin. (I052b0, b/341319151) SavedStateHandleFactory
test API'si artık Android dışı testlerde kullanılabilir ancak Robolectric'in Bundle ile bağımsız değişken ayrıştırmayı desteklemesi gerekir. (I76cdc, b/340966212)- Compose'da Tür-Güvenli Gezinme kullanılırken uygulama işlemi devam ettirildiğinde geri yükleme durumundan kaynaklanan 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.
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,
Sürüm 2.8.0-alpha06
3 Nisan 2024
androidx.navigation:navigation-*:2.8.0-alpha06
yayınlandı. Sürüm 2.8.0-alpha06 bu kaydetmeleri içerir.
API Değişiklikleri
- Kotlin serileştirmesine dayalı bir yaklaşım kullanarak Navigasyon Yazma Sihirbazı'nda Güvenli Bağımsız Değişkenler için destek başladı. Bu API'ler tamamlanmadı ve
ExperimentalSafeArgsApi
ek açıklamasıyla işaretlenmiş. Gelecekteki bir sürümde API yüzeyinin tamamı tamamlandığında bu ek açıklama kaldırılacaktır.
Hata Düzeltmeleri
NavHost
, varsayılan contentHizalama bağımsız değişkeni 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 değişiklik yapılmayacak. Yakında bu özelliği ve Navigation Compose'a geri dönmeyle ilgili talimatlar da resmi olarak kullanımdan kaldırılacak. Ancak en son Eşlik eden alfa sürümünü (0.31.2-alpha
) kullanıyorsanız başka bir API değişikliği yapmanıza gerek kalmadan bu, taşıma rehberinin tam tersi olacaktır. (b/197140101)
Hata Düzeltmeleri
- Gezinme Compose'daki NavHost, Etkinlik DURDURDURDU ve DEVAM ETTildikten sonra bile sistem geri çağrılarına doğru şekilde müdahale ediyor. (Icb6de, b/279118447)
Bağımlılık Güncellemeleri
- Gezinme artık
1.1.0
konumundan 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 değişiklik yapılmayacak. Yakında bu özelliği ve Navigation Compose'a geri dönmeyle ilgili talimatlar da resmi olarak kullanımdan kaldırılacak. Ancak en son Eşlik eden alfa sürümünü (0.31.2-alpha
) kullanıyorsanız başka bir API değişikliği yapmanıza gerek kalmadan bu, taşıma rehberinin tam tersi olacaktır. (b/197140101)
Hata Düzeltmeleri
- Gezinme
2.6.0-rc02
'den: Parçalar'da Gezinmeyle ilgili sorun düzeltildi. Bu sorun,popUpTo
ile gezinmenin ve arka yığından bir parçanın, görünümünü yeniden oluşturmadan arka yığının dışına çıkartılmasının sistemin tekrar çalışmayı durdurmasına neden olmasına yol açtı. (Ieb8d4, b/281726455)
Bağımlılık Güncellemeleri
- Gezinme artık E-posta Yazma
1.5.0-beta01
uygulamasına bağlı.
Sürüm 2.6.0
Sürüm 2.6.0
7 Haziran 2023
androidx.navigation:navigation-*:2.6.0
yayınlandı. 2.6.0 sürümü bu kaydetmeleri içerir.
2.5.0'dan bu yana Navigasyon'da yapılan önemli değişiklikler
NavBackStackEntry
iş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 girilmesini ve özel efektlerin tamamlanmasını bekleyecektir.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, kök grafik derlemeleri ve yanlış geriye dönük yığınla ilişkili hedeflere gidilmesine ilişkin hatayı da düzeltir. (I5bc58, b/275258161, b/275407804)
Sürüm 2.6.0-alpha08
22 Mart 2023
androidx.navigation:navigation-*:2.6.0-alpha08
yayınlandı. 2.6.0-alpha08 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
NavHostFragment
artı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)FragmentNavigator
öğesine parça ekleme Navigasyonu kullanmadanFragmentManager
işlemi 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
seçeneklerindeki oluşturulabilir kapsamlar artık beklenen sırada, yani iç composable'lar dıştan önce bertaraf edildi composables. (I157e6)- Gezinme SafeArgs, önbellekte yeniden konumlandırılabilmesi için artık
ArgumentsGenerationTask
iç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ş ya da NavHost'un içNavHost
öğesini düzgün bir şekilde canlandırması gerekir. (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
CreationExtras
sonraby navGraphViewModels
adlı kullanıcıya geçebilirsinizViewModel
oluşturmak için (I29217, b/217618359)
Hata Düzeltmeleri
NavDeepLinks
artık rotalara/derin bağlantı URI'lerine yerleştirilmiş kodlanmış yeni satır karakterlerini düzgün bir şekilde destekliyor. (I513d1, b/217815060)CreationExtras
, şununla kullanıldığında artık düzgün şekilde çalışacak: ViewModelleri oluşturmak içinNavBackStackEntries
. (I69161, b/217617710)- Gezinme Güvenli Bağımsız Değişkenler artık tanımlı ad alanının kullanılmasını destekliyor.
build.gradle
ekler. (I659ef, b/217414933)
Sürüm 2.5.0-alpha02
9 Şubat 2022
androidx.navigation:navigation-*:2.5.0-alpha02
yayınlandı. 2.5.0-alpha02 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
2.4.1
gezinme bölmesinden:NavHostFragment
artık İç içe yerleştirilmiş grafiklerle görüntüleme bağlama kullanılırkenOnBackPressedDispatcher
. (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
ViewModel
öğesine erişimin oluşturulmasıyla ilgili sorun düzeltildi bir ParçanınonCreate()
uygulamasındanby navGraphViewModels()
üzerindenIllegalStateException
ile başarısız olur. (I8a14d)NavDeepLink
artık bağımsız değişkenlerin kodunu iki kez gereksiz yere çözmeyecek, Bu, uygun bağımsız değişkenlerin artık son hedefinize iletildiği anlamına gelir. (I31b0a, b/210711399)
Güvenli Bağımsız Değişkenler
- Güvenli Bağımsız Değişkenler artık Android Gradle Eklentisinin 7.0.4 sürümüne bağlı. Bu, Navigasyon Güvenli Bağımsız Değişkenlerinin artık Android Studio 7.0'dan önceki sürümler, ancak artık Android Gradle Plugin 7.1.0 ve sonraki sürümler. (I41c88, b/213086135, b/207670704)
Sürüm 2.4.2
Sürüm 2.4.2
6 Nisan 2022
androidx.navigation:navigation-*:2.4.2
yayınlandı. Sürüm 2.4.2 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- 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ı yapıldı: Navigation SafeArgs artık tanımlanan ad alanının kullanılmasını destekliyorbuild.gradle
ekler. (I659ef, b/217414933) 2.5.0-alpha04
navigasyonundan geri bağlantı yapıldı:Navigation Safe Args
kullanılırken artık kilitlenmeyecek ad alanları veAndroidManifest.xml
mevcut değil. (I17ccf, b/227229815)- Gezinme
2.5.0-alpha04
'dan geri bağlanmış: Boş dizeler artık derin komutlarda geçerli bağımsız değişkenler olarak kabul edilir bağlantılarını kullanın. (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 geri bağlantı yapıldı: ViewModel'e erişimin oluşturulmasıyla ilgili bir sorun düzeltildi bir Fragment'ınonCreate()
konumundanby navGraphViewModels()
aracılığıylaIllegalStateException
ile başarısız olur. (I8a14d) 2.5.0-alpha01
gezinmesinden eski sürüme aktarıldı:NavDeepLink
artık bağımsız değişkenlerin kodunu iki kez gereksiz bir şekilde çözmüyor, Diğer bir deyişle, kodu doğru şekilde çözülmüş bağımsız değişkenlerin artık son hedefinize iletilmiş olması gerekir. (I31b0a, b/210711399)- Gezinme
2.5.0-alpha01
'dan geri bağlanmış: Güvenli Bağımsız Değişkenler artık Android Gradle Eklentisinin 7.0.4 sürümüne bağlıdır. Bu, Navigasyon Güvenli Bağımsız Değişkenler'in artık 7.0'dan önceki Android Studio sürümleriyle uyumlu olmayacağı, ancak Android Gradle Eklentisi 7.1.0 ve sonraki sürümleriyle uyumlu olduğu anlamına gelir. (I41c88, b/213086135, b/207670704)
Sürüm 2.4.0
Sürüm 2.4.0
26 Ocak 2022
androidx.navigation:navigation-*:2.4.0
yayınlandı. 2.4.0 sürümü bu kaydetmeleri içerir.
2.3.0'dan bu yana önemli değişiklikler
- Tüm Navigasyon yapıları Kotlin'de yeniden yazıldı. Bu, genel anahtar kelimeler (
NavType
alt sınıf gibi) kullanan sınıfların null (boşluk) ayarını iyileştirdi. Daha önce-ktx
yapılarının bir parçası olan tüm Kotlin uzantı işlevleri, ilgili ana yapılarına taşındı.-ktx
yapıları yayınlanmaya devam eder ancak tamamen boş olur. navigation-fragment
yapısı, artık 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
NavType
sınıfını genişleterek özel NavType'lar. Özel türler yalnızca gezinme grafiğini programatik olarak (örneğin, Gezinme Grafiği Kotlin DSL. Gezinme artık özel NavigationUI'nin uygulanmasına yardımcı olmak için kullanılabilecek
findStartDestination()
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ıldı vepopUpToId
. getStartDestination()
API desteği sonlandırıldı /getStartDestinationId()
.
Kimliğe göre gezinmenin aksine, rotayla gezinme dolaylı derin bağlantılarla aynı kurallara uyar. Çünkü iç içe yerleştirilmiş herhangi bir grafikteki herhangi bir hedefe doğrudan gidilebilir ve bu sayede, her bir hedefe harici olarak görünür bir derin bağlantı eklenmeden bu rotaların çok modüllü projelerde kullanılabilir olması sağlanır.
Gezinmede Yazma
navigation-compose
yapısı, Gezinme Bileşeni ile Jetpack Compose arasında entegrasyon sağlar. Uygulamanızdaki hedefler olarak @Composable
işlevlerini kullanır.
Bu sürüm şunları sağlar:
composable
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. Navigasyon'u parçalarla kullanırken birden fazla yığınla entegrasyon sağlamak için önerilen yöntem budur.
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()
öğesine 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
şimdi ekliyorPendingIntent
yönüne gidenPendingIntent.FLAG_IMMUTABLE
trenicreatePendingIntent()
tarafından döndürüldü ve Android 12 hedeflenirken bu API beklendiği gibi çalışıyor.- Navigasyon artık şunlara bağlı:
Yaşam döngüsü
2.3.1
ve şu andasetGraph()
,popBackStack()
,navigateUp()
venavigate()
olarak işaretlendi.NavBackStackEntry
Lifecycle
güncellenen,@MainThread
olarak, Gezinme ana iş parçacığıyla hizalanıyor2.3.0
Yaşam Döngüsü'nde yaptırım uygulanmaya başladı. - Derin bağlantılar artık gerekli tüm bağımsız değişkenlerin (varsayılan değeri olmayanlar)
Uri
içinde bulunduğunu doğruluyor. - Ayrıştırılmış
NavDeepLink
bağımsız değişkenleri artık soru işaretleriyle aynı şekilde yol segmentleri arasında ayırıcı olarak dikkate alıyor. Böylece, bağımsız değişkenin pound işareti boyunca yayılmasını engelliyor. - Güvenli Bağımsız değişkenlerden oluşturulan Kotlin kodu, işlem oluştururken artık varsayılan değerleri parametre olarak varsayılan değerlere sahiptir.
- Güvenli Bağımsız Değişkenler artık bağımsız değişkenler oluştururken parametreler yerleştiriyor varsayılan değerleri olanlardan önce gelen varsayılan değerler olmadan.
- Güvenli Arg'ler artık Android Gradle Plugin 4.2.0'a bağlı. Bu durumda artık "
applicationIdTextResource
kullanılıyor" uyarısını almayacaksınız.
Bilinen sorunlar
- Gezinme
2.5.0-alpha01
'de sorun düzeltildi: OluşturulanViewModel
değerine erişim bir ParçanınonCreate()
konumundanby navGraphViewModels()
aracılığıylaIllegalStateException
ile başarısız olur. (b/213504272) - Gezinme
2.5.0-alpha01
özelliğinde düzeltildi: Güvenli Bağımsız Değişkenler 2.4.0 uyumsuz Android Gradle Plugin 7.1.0 ve üzeri. (b/213086135) - İç içe yerleştirilmiş birden fazla gezinme grafiği içeren derin bağlantılar, tam eşlemeyi doğru şekilde oluşturmuyor Backstack. (b/214383060)
Sürüm 2.4.0-rc01
15 Aralık 2021
androidx.navigation:navigation-*:2.4.0-rc01
yayınlandı. Sürüm 2.4.0-rc01 bu kaydetmeleri içerir.
Davranış değişiklikleri
- Ayrıştırılmış
NavDeepLink
bağımsız değişkende artık kare işareti, bağımsız değişkenler arasında ayırıcı olarak soru işareti olarak kullanılıyor. (I21309, b/180042703)
Hata Düzeltmeleri
- Derin bağlantılar artık yer tutucunun adıyla aynı değerlere sahip bağımsız değişkenleri yoksaymayacak. (If8017, b/207389470)
NavController
geri yüklendikten sonra, geçişler kullanılarak iç içe yerleştirilmiş bir hedef açılı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 gizli bilgilerin ele alınması
derin bağlantılar artık
saveState
işaretini otomatik olarak ekliyor emin olmanız gerekir. ÖrneğinNavigationUI.setupWithNavController
ve kodu düzgün şekilde çalışıyor. (Ic8807)
Davranış Değişiklikleri
- Derin bağlantı kalıpları artık enflasyon sırasında değil, NavDeepLink'te geç derleniyor. Bu, derin bağlantılar içeren gezinme grafiklerinin şişirme süresini iyileştirecektir. (b8d257, b/184149935)
Hata Düzeltmeleri
- NavBackStackEntries'in aşağı itilmesine neden olan bir sorun giderildi:
Şu durumda
Lifecycle.State.STARTED
adresine taşındıktan sonraLifecycle.State.CREATED
NavHost
doğrudan etkinliğinsetContent()
öğesine eklenir. (Ia5ac1, b/203536683) - Şu yarış koşulu düzeltildi:
dışarıdan bir
DialogFragment
hedefi açılıyor iletişim kutusu gösterilmeden önceki yığın doğrudan iletişim kutusunu kapatmaz ve hatalı iletişim kutusu manuel olarak yapıldığında bir kilitlenme kullanıcı tarafından kapatıldı. (I687e5) - Şu sorun düzeltildi:
NavigationUI
üzerindekionNavDestinationSelected
API şunu yapar: şunanavigate()
yapmamış olsanız biletrue
değerini döndürür: gezinme grafiğini kullanabilirsiniz. Şimdi aynı mantığı kullanıyor.setupWithNavController
tarafından yalnızca geçerli öğeyle ilişkiliMenuItem
öğesini seçinhierarchy
kullanarak hedefin yerini belirler. (I2b053)
Sürüm 2.4.0-beta01
27 Ekim 2021
androidx.navigation:navigation-*:2.4.0-beta01
yayınlandı. Sürüm 2.4.0-beta01 bu kaydetmeleri içerir.
Yeni Özellikler
- Artık Parçalarla Navigasyon Kotlin DSL'sinin kullanılmasını daha iyi desteklemek için
by navGraphViewModel
öğesini kimlik kullanmaya alternatif olarak bir rotayla kullanabilirsiniz. (I901e3, b/201446416)
API Değişiklikleri
visibleEntries
API artık deneyseldir. (I93f6f)
Hata Düzeltmeleri
- Geçişler yapıldığında ViewModeller artık yok edilmeyecek aynı ekranlar arasında ileri geri gidilerek kesintiye uğraması (Id52d8, b/200817333)
- Boş değer atanabilir
NavDeepLink
bağımsız değişkenleri artık kullanılamıyor derin bağlantılar eklerken varsayılan bir değer gerektirir:NavDestination
sn. (I5aad4, b/201320030) - Artık farklı Yaşam Döngüleri olan NavBackStackEntries artık eşit kabul edilir. Bu, NavHost'ın tüm öğeleri düzgün bir şekilde yeniden singleTop ile gezinme yaparken ve yeniden seçim yaparken hedefler seçenekleri vardır. (I1b351, b/196997433)
AbstractListDetailFragment
ile ilgili bir sorun düzeltildilayout_width
velayout_weight
özelliklerine neden olanonCreateListPaneView()
tarafından döndürülen liste bölmesinde veya yoksayılmasına neden olabilir. (f5fbf3)- İletişim kutusu hedeflerinin görsel durumu artık açık
öğesinin
DialogFragmentNavigator
durumu. Yani, eş zamansız eşlemenin manuel olarak çağrılmasıDialogFragment
içindismiss()
API artık tüm öğeleri düzgün şekilde temizliyor iletişim kutusu hedefleri gösterilir. BupopUpTo
veya İletişim kutusunu kapatmak içinpopBackStack()
. (I77ba2) - Şimdi
AbstractAppBarOnDestinationChangedListener
onDestinationChanged()
için daha açık hata mesajı içeriyor. (Ie742d)
Sürüm 2.4.0-alpha10
29 Eylül 2021
androidx.navigation:navigation-*:2.4.0-alpha10
yayınlandı. Sürüm 2.4.0-alpha10 bu kaydetmeleri içerir.
Yeni Özellikler
- NavController artık görünür olan tüm öğelerin listesini alma imkanı sunuyor.
visibleEntries
StateFlow (Ia964e) üzerindenNavBackStackEntry
örnek rememberNavController()
artık isteğe bağlı şuna eklenecekNavigator
örnek kümesi isteğe bağlı olarak daha iyi destek sunmak içinNavController
tarihinde döndü Aşağıdakiler gibi gezginler: Refakatçi Gezinme Materyali. (I4619e)
Hata Düzeltmeleri
- Etkinlik şu durumda olduğunda Dinamik Gezinme artık kilitlenmez: yeniden oluşturulmuş. (Ifa6a3, b/197942869)
- Sistem geri düğmesinde yalnızca
NavHost
içeren bir composable hedefe geri döndürüldükten sonra ortaya çıkan sorun düzeltildi. (3ed148, b/195668143) - SafeArgs artık
fromBundle()
vefromSavedStateHandle()
, doğru parametre sırasında. (I824a8, b/200059831)
Sürüm 2.4.0-alpha09
15 Eylül 2021
androidx.navigation:navigation-*:2.4.0-alpha09
yayınlandı. Sürüm 2.4.0-alpha09 bu kaydetmeleri içerir.
Yeni Özellikler
- Artık
clearBackStack()
yöntemini kullanabilirsinizpopBackStack()
ile kaydedilen durumları temizleyin veyapopUpToSaveState
. (I80a0f) - Artık bir bağımsız değişken ve/veya derin bağlantı listesini iç içe geçmiş gezinme grafiği oluşturucusuyla çalışır ve otomatik olarak eklenir elde edilen grafiğe dökülür. (I8a470, b/182545357)
API Değişiklikleri
navArgument
Kotlin DSL işlevi artıknavigation-compose
yerinenavigation-common
. Bu, şunu gerektirir: içe aktarmaları güncelleyerek bu işlevi kullanmaya devam edebilirsiniz. (I1d095)
Davranış Değişiklikleri
- Güvenli Bağımsız Değişkenler artık bağımsız değişkenler oluştururken parametreler yerleştiriyor varsayılan değerleri olanlardan önce gelen varsayılan değerler olmadan. (I89709, b/198493585)
Hata Düzeltmeleri
- Gezinme Oluşturma Özelliği kullanılırken NavGraphs yalnızca
Tüm çocukları
DESTROYED
olduğundaDESTROYED
. (I86552, b/198741720) - Boş değer atanabilir
NavDeepLink
bağımsız değişkenleri artık kullanılamıyor bir varsayılan değer gerektirir. (Ia14ef, b/198689811) setGraph()
yeni grafikle aranıyor hem de kaydedilen geri yığınları temizler. eski davranışına uyar. (I97f96)- Şu sorun giderildi:
OnDestinationChangedListener
örnek vecurrentBackStackEntryFlow
şu durumlarda bilgilendirilmedi:launchSingleTop
kullanılıyor. (Iaaebc)
Bağımlılık Güncellemeleri
- Gezinme menüsü artık şuna bağlı: Etkinlik Oluşturma 1.3.1. (I05829)
- Gezinme menüsü artık şuna bağlı:
Yaşam Döngüsü ViewModel Oluşturma
2.4.0-beta01
. (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
NavType
sınıfını genişleterek özel NavType'lar. Özel türler yalnızca gezinme grafiğini programatik olarak (örneğin, Gezinme Grafiği Kotlin DSL. (I78440, b/196871885)
Davranış Değişiklikleri
- Güvenli Bağımsız değişkenlerden oluşturulan Kotlin kodu, işlem oluştururken artık varsayılan değerleri parametre olarak varsayılan değerlere sahiptir. (Idb697, b/188855904)
- Derin bağlantılar artık gerekli tüm bağımsız değişkenlerin (varsayılan değeri olmayanlar)
Uri
içinde bulunduğunu doğruluyor. (#204, b/185527157)
Hata Düzeltmeleri
- içinde
getBackStackEntry
vepreviousBackStackEntry
kullanılıyor composable(),remember()
ile birlikte kullanıldığında arka yığında olmayan hedef yok. (I75138, b/194313238) - Gezinme Oluşturma Aracı artık eski sürüme döndüğünde düzgün bir şekilde yeniden oluşturuyor
bağımsız değişkenleri üst üste yıkmak için
launchSingleTop=true
kullanın. (Iebd69, b/186392337) ArrayIndexOutOfBoundsException
artık yer almayacak 13 veya 29 varış noktası içeren bir grafiklesetGraph
aranıyor. (I1a9f1, b/195171984)- SafeArgs java oluşturucu artık lint'e neden olmamalıdır uyarılarının gösterilmesini sağlar. (I1a666, b/185843837)
Harici Katkı
- Derin bağlantıların, gerekli tüm bağımsız değişkenlerin (varsayılan değeri olmayanlar)
Uri
içinde mevcut olduğunu doğruladığından emin olduğunuz için ospixd'ye teşekkür ederiz. (#204, b/185527157)
Sürüm 2.4.0-alpha07
18 Ağustos 2021
androidx.navigation:navigation-*:2.4.0-alpha07
yayınlandı. 2.4.0-alpha07 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Gezinme Oluşturma özelliği artık ve birden çok eşleme türü kullanılırken grafiklerde değişiklik yaptığınızda özelliği kullanılır. (If5a3d, b/195141957)
- Gezinme menüsü kullanılırken aynı sekmeyi tekrar seçme birden fazla arka yığının olması artık boş ekran ile sonuçlanmayacak. (I860dc, b/194925622)
NavHost
artık şuLifecycle.State
tablodaki değişiklikleri gözlemliyor:NavBackStackEntry
s, yani bir parçadaNavHost
kullanıldığında artık olarak yeniden derlendiğinden emin olun. (I4eb85, b/195864489)- Bir
DialogFragment
, Etkinliğinizi yeniden oluşturduktan sonraNavController
durumu (ör. bir yapılandırma değişikliğinden sonra). (Icd72b) - Pop-up'ın iletişim kutusu hedefi, NavController'ın sistem geri düğmesinin işlenmesine neden olabilir. NavController'ı kullanıp geri düğmesine müdahale ancak çürütülecek herhangi bir arka yığını yoktur. (If3b34)
- Güvenli bağımsız değişkenler artık otomatik olarak bir
toSavedStateHandle
oluşturuyor yönteminiViewModel
kodunuzu test etmek için kullanabilirsiniz. (If1e2d, b/193353880)
Sürüm 2.4.0-alpha06
4 Ağustos 2021
androidx.navigation:navigation-*:2.4.0-alpha06
yayınlandı. 2.4.0-alpha06 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
AbstractListDetailFragment
ü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 ilk bestenin parçası olarak grafiğe dönüştürüldü. (Ieb7be)
Hata Düzeltmeleri
- Bir gezinme grafiğinin son hedefi yükseltildiğinde artık
ClassCastException
tetiklenmez. (If0543, b/172112072, b/194301889) Uri
olmadan derin bağlantı eklerken ve rota ya da derin bağlantı üzerinden gezinirken oluşabilecekNullPointerException
düzeltildi. (938a0c, b/193805425)- Yazmada Gezinme'de şu sorun giderildi:
derin bağlantılı bir
NavBackStackEntry
RESUMED
durumu. (I192c5) - Bir iletişim kutusu hedefi açıldığında, NavController'ın sistem geri düğmesi işlemesinin güncellenmemesine neden olan sorun düzeltildi. Bu sorun, patlayacak herhangi bir geri yığını olmamasına rağmen NavController'ın geri düğmesine müdahale etmesine neden olabilir. (aosp/1782668)
Sürüm 2.4.0-alpha05
21 Temmuz 2021
androidx.navigation:navigation-*:2.4.0-alpha05
yayınlandı. 2.4.0-alpha05 sürümü bu kaydetmeleri içerir.
Davranış Değişiklikleri
- Yazma Sihirbazı'nın
NavHost
özelliği artık gezinirken her zaman çapraz geçişleri kullanıyor hedefler. (I07049, b/172112072) - Artık NavHost grafiğinde değişiklik yapabilirsiniz. Grafikler
Başlangıç noktası aynı olan Hedef ve varış noktaları
eşit kabul edilir ve
NavController
geri yığınını temizlemez. (I0b8db, b/175392262)
Hata Düzeltmeleri
- Şu durumlarda
NoSuchElementException
düzeltildi:LifecycleObserver
içindenpopBackStack()
aranıyor nedeniyleNavBackStackEntry
öğesine eklenmiş NavController'ın durumuna ilişkin güncellemeler içerir. (I64621) AbstractListDetailFragment
artık izin veriyorSlidingPaneLayout
şuradan tamamen çıkarılacakAbstractListDetailFragment
kullanılmadığında APK'nız. (i611ad)NavGraph
veNavDestination
artık eşittir yöntemini geçersiz kılıyor. aynı değerlere sahip iki nesne eşit olarak kabul edilir. (I166eb, b/175392262)
Sürüm 2.4.0-alpha04
1 Temmuz 2021
androidx.navigation:navigation-*:2.4.0-alpha04
yayınlandı. 2.4.0-alpha04 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
navigation-fragment
yapısı, artık 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şlevi şu şekilde yeniden adlandırıldı:push
.add()
için yapılan tüm mevcut çağrıların push() olarak değiştirilmesi gerekir. (Ie89fc, b/172112072)- Özel
Navigator
örnekleri artık bir hedefi eşzamansız olarak aktarmak veya açmak iç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
şimdi ekliyorPendingIntent
yönüne gidenPendingIntent.FLAG_IMMUTABLE
trenicreatePendingIntent()
tarafından döndürüldü ve Android 12 hedeflenirken bu API beklendiği gibi çalışıyor. (If8c52)
Hata Düzeltmeleri
<include-dynamic>
ile ilgili şu sorun düzeltildi: Grafiğe aktarılan bağımsız değişkenler doğru şekilde iletilmez eklemeniz gerekir. (I3e115)- Bir hedefe giderken
NullPointerException
düzeltildi ve varsayılan değer@null
olan birstring[]
bağımsız değişkeni kullanılıyor. (I1fbe8) @Navigator.Name
için ProGuard kuralları ekleyerek sorunları düzeltin tam mod kullanırken. (I2add9, b/191654433)- SafeArgs artık
1.5.0
tarihinden öncekiKotlin
sürüm. (Icd1ff, b/190739257)
Sürüm 2.4.0-alpha03
16 Haziran 2021
androidx.navigation:navigation-*:2.4.0-alpha03
yayınlandı. 2.4.0-alpha03 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Dahil edilen dinamik grafiğe gitmek için iki
navigate()
çağrısının gerekmesine neden olan sorun düzeltildi. (I7785c, b/188859835) - Şurada eklenen bir regresyon düzeltildi:
Navigasyon
2.4.0-alpha01
nerede?setupActionBarWithNavController()
şunu yapmazdı: yukarı simgesini kaldırmadan, üst düzey hedeftir. (I5d443, b/189868637) - Şu durumlarda
IllegalStateException
düzeltildi: daha önce açıldıktan sonrapopBackStack()
aranıyor kök grafiğine yerleştirin. (I2a330, b/190265699) by navArgs()
için ProGuard kuralları artık düzgün bir şekildenavigation-common
veya herhangi bir yapı kullanırken uygula bir değişim yönetimi pratiği yapacaksınız. (I68800, b/190082521)- Çağrı yapan bir
OnDestinationChangedListener
Şu anda ilk kez geri arama aldığındanavigate()
düzgün şekilde ikinci bir geri arama alması için emin olmanız gerekir. (Ie5f9e, b/190228815) - Güvenli Bağımsız Değişkenler artık dinamik özellikle birlikte kullanıldığında kilitlenmiyor modülleri ve AGP 7.0 ve sonraki sürümleri. (I69518, b/189966576)
Bilinen Sorun
- Güvenli Bağımsız Değişkenler, Kotlin'in eski bir sürümüne bağımlılık nedeniyle Gradle
6.7.0
kullanılı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şirdiğinizde animasyon özellikleri şu kodu kullanarak temanızdan alınan özellikleri kullanın:app:enterAnim="?attr/transitionEnter"
söz dizimi. (I07bc1, b/178291654)
API Değişiklikleri
- Kimlik kullanan Kotlin DSL derleyicilerin desteği sonlandırılmıştır. , rota kullanan derleyicilerle (I85b42, b/188816479) değiştirilmelidir (I9f58f, b/188816479)
Hata Düzeltmeleri
DialogFragmentNavigator
artıkNavController
içinNavigatorState.pop()
API sisteme geri vurarak iletişim kutusu kapatıldığında düğmenin veya düğmenin dışına tıklama yoluyla,NavController
durumu her zaman Gezgin'in durumu. (I2ead9)Navigasyon, aşağıdaki durumlarda artık
ConcurrentModificationException
vermiyoronDestinationChanged
geri çağırması ileOnDestinationChangedListeners
listesi değiştiriliyor. (Ib1707, b/188860458)Güvenli Bağımsız Değişkenler, oluşturulmaya çalışılırken artık çökmüyor. yön özellikleri hakkında daha fazla bilgi edinin. (Id2416, b/188564435)
NavDestination'daki setId yöntemi artık düzgün bir şekilde not ediliyor
@IdRes
ile değiştirin; dolayısıyla yalnızca kaynak kimliklerini kabul eder. (I69b80)findNode
öğesinin int parametresi artıkresId
yerineresid
. (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ıldı vepopUpToId
. (I59c73, b/172823546) getStartDestination()
API desteği sonlandırıldı /getStartDestinationId()
. (I0887f, b/172823546)
Yazma Sihirbazı'nın önceki sürümlerinden Gezinme Oluşturma 2.4.0-alpha01
sürümüne geçen geliştiriciler için bu, uzantı yöntemlerinde yapılan aşağıdaki içe aktarma işlemlerinin artık gerekli olmadığı ve kaldırılması gerektiği anlamına gelir:
import androidx.navigation.compose.navigation
import androidx.navigation.compose.createGraph
import androidx.navigation.compose.getBackStackEntry
import androidx.navigation.compose.navigate
import androidx.navigation.compose.popUpTo
KEY_ROUTE
bağımsız değişkeni, NavDestination
tarihinde route
özelliğiyle değiştirildi. Bu sayede navBackStackEntry.destination.route
öğesini doğrudan çağırabilirsiniz.
API Değişiklikleri
- Tüm Navigasyon yapıları Kotlin'de yeniden yazıldı. Bu, genel anahtar kelimeler (
NavType
alt sınıf gibi) kullanan sınıfların null (boşluk) ayarını iyileştirdi. Daha önce-ktx
yapılarının bir parçası olan tüm Kotlin uzantı işlevleri, ilgili ana yapılarına taşındı.-ktx
yapıları yayınlanmaya devam eder ancak tamamen boş olur. (b/184292145) NavDeepLinkBuilder
artık eklemeyi destekliyor oluşturulan rapora birden çok farklı hedef gösterir. (I3ee0d, b/147913689)DynamicNavHostFragment
(Icd515, b/175222619) için fabrika işlevlerini ekleyin- Bir
NavBackStackEntry
öğesinin benzersiz kimliği artık herkese açık API'sinin bir parçası olarak kullanıma sunuldu. (Ie033a) NamedNavArgument
ürününü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 şunlara bağlı:
Yaşam döngüsü
2.3.1
ve şu andasetGraph()
,popBackStack()
,navigateUp()
venavigate()
olarak işaretlendi.NavBackStackEntry
Lifecycle
güncellenen,@MainThread
olarak, Gezinme ana iş parçacığıyla hizalanıyor2.3.0
Yaşam Döngüsü'nde yaptırım uygulanmaya başladı. (b/171125856) - Derin bağlantılardan enum bağımsız değişkenleri ayrıştırıldığında artık büyük/küçük harfe duyarlı değildir. Böylece,
http://www.example.com/red
gibi bir derin bağlantının, sıralama değ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 özelleştirilebilir Aynı@Navigator.Name("dialog")
kullanan gezinme araçlarıDialogFragmentNavigator
olarak ayarlanır. (Ib1c2c, b/175979140)NavigatorProvider#addNavigator
işlevinin aynı örnekle tekrar tekrar çağrılmasının sorunlara neden olmaması için davranışı iyileştirildi. (#176, b/187443146)
Harici Katkılar
- Her
NavArgs
sınıfı için birfromSavedStateHandle()
yöntemi oluşturan Güvenli argümanları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
işlevinin aynı örnekle tekrar tekrar çağrılmasının soruna neden olmamasına yol açan davranışı iyileştirdiğiniz için jossiwolf'a teşekkür ederiz. (#176, b/187443146)
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 şuna aktarılan birModifier
kabul ediyor: hedef composable'ları sarmalayan composable container'ı seçeceğim. (I85aca, b/175125483)
Hata Düzeltmeleri
NavHost
artık çalışıyorOnBackPressedDispatcherOwner
bulunamasa bileNavHost
öğesini önizlerken de aynı durum söz konusudur. (I7d8b4)- Oluşturma Gezinme Gezinmesi artık
2.3.5
Gezinmesine bağlı olupNavHost
hedefindeBackHandler
kullanılırken karşılaşılan bir sorun düzeltilmektedir. (I7e63b, b/182284739)
Sürüm 1.0.0-alpha09
10 Mart 2021
androidx.navigation:navigation-compose:1.0.0-alpha09
yayınlandı. Sürüm 1.0.0-alpha09 bu kaydetmeleri içerir.
API Değişiklikleri
LocalViewModelStoreOwner.current
artık şu sonucu döndürüyor: daha iyi belirlemek için null değer atanabilirViewModelStoreOwner
mevcut durumdaViewModelStoreOwner
olup olmadığını bileşimi.ViewModelStoreOwner
gerektiren API'ler, örneğinviewModel()
veNavHost
olarak bir istisna olsa da (ViewModelStoreOwner
ayarlanmamışsa) (Idf39a)
Hata Düzeltmeleri
- Oluşturma bölümünde gezinme artık Gezinme 2.3.4 aynı ViewModelStore'u ayarlamaya ilişkin düzeltmeyi içeren nesnesini ifade eder. (I65c24, b/177825470)
Sürüm 1.0.0-alpha08
24 Şubat 2021
androidx.navigation:navigation-compose:1.0.0-alpha08
yayınlandı. 1.0.0-alpha08 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
NavHost
, artı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
artık yeniOnBackPressedDispatcher
almak için Activity-Compose 1.3.0-alpha01 üzerindenLocalOnBackPressedDispatcherOwner
(NavController
adresinde ayarlanan) (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ğinden veya işleme ölümü ve yeniden oluşturma işleminden sonra
popBackStack()
venavigateUp()
öğelerinin çalışmamasına neden olan sorun düzeltildi. (Icea47, b/173281473) - NavHost uygulamasındaki iç içe yerleştirilmiş grafiğe gitmek artık düzgün çalışıyor. (I0948d, b/173647694)
Sürüm 1.0.0-alpha02
11 Kasım 2020
androidx.navigation:navigation-compose:1.0.0-alpha02
yayınlandı. 1.0.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Navigasyon oluşturma işlemi artık popUpTo kullanımı için NavOptions'ı destekliyor ve startsingleTop işlemlerini (If96c3, b/171468994) başlatın.
- Oluşturma Gezinme menüsünde iç içe yerleştirilmiş grafikler oluşturmanıza olanak tanıyan kimlik DSL. (I1661d)
- startDestination artık bir NavHost (Ie620e) parametreleri
- Artık rotayı başlangıç olarak kullanarak bir grafik oluşturabilirsiniz hedefin dışında kalan bir hedef URL'dir. (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
NavDeepLinkRequest
ya daUri
kullanarak rotayı izlerken artık şunları yapabilirsiniz:Uri
, action ve MIME türüne erişerek sonuçtaki hedefte AmacıKEY_DEEP_LINK_INTENT
aracılığıyla bağımsız değişkenlerden almak, harici derin bağlantı için zaten kullanılabilen işlevleri yansıtır. (I975c3, b/181521877)
Hata Düzeltmeleri
- Şu görevliye
OnBackPressedCallbacks
eklendi: Yaşam Döngüsü Sahibi olarakNavBackStackEntry
artık düzgün şekilde müdahale ediyor Etkinlik Yaşam DöngüsüSTOPPED
ise, ardındanSTARTED
(Iff94f, b/182284739) - Derin bağlantı alan adı ayrıştırma işlemi artık büyük/küçük harfe duyarlı değildir. Böylece
www.example.com
, 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"
kullanabilirsiniz. (#117, b/173766247)
Hata Düzeltmeleri
- Navigasyon’un dinamik özellikler için desteği kullanılırken takılı kalan yükleme ilerleme durumu düzeltildi. (Ib27a7, b/169636207)
setViewModelStore
veyasetLifecycleOwner
aynı numarayla aranıyor Önceden ayarlanmış nesne artık işlemsiz olacak (Idf491, b/177825470)- Safe-Args artık uygun yöntemlere gizleme ek açıklamaları ekliyor yardımcı olur. (I8fbc5, b/179463137)
Harici Katkılar
ReferenceType
bağımsız değişkenlerinin artık derin bağlantı URI'sinin parçası olarak gönderildiğinde düzgün şekilde ayrıştırılabilmesini sağlamak üzere pull isteği iç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
NavBackStackEntry
açılırken artık kilitlenme yokLifecycle
değeriCREATED
kümesine taşınmadan önce. (Ie3ba3)- Bir
0
animasyon kaynağı değerine sahip etkinlik,ResourceNotFoundException
. (I7aedb, b/176819931)
Sürüm 2.3.2
Sürüm 2.3.2
2 Aralık 2020
androidx.navigation:navigation-*:2.3.2
yayınlandı. Sürüm 2.3.2 bu kaydetmeleri içerir.
Hata Düzeltmeleri
NavigationUI
işlevinde,onNavDestinationSelected
ile<activity>
hedefi kullanmanın Etkinliğe gidememesine neden olan regresyon düzeltildi. (I22e34, b/171364502)navigation-dynamic-features-fragment
ürününün, yeni yüklenen hedefe birden fazla kez gitmesine neden olan sorun düzeltildi. (aosp/1486056, b/169636207)launchSingleTop
kullanılırken varsayılan bağımsız değiş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 şuna bağlı Çekmece Düzeni 1.1.1,NavigationUI
, çekmeceyi açabildiğinden emin olun.LOCK_MODE_LOCKED_CLOSED
veyaLOCK_MODE_LOCKED_OPEN
. (b/162253907)- Güvenli argümanlar artık KotlinPoet 1.6.0'a bağlı (aosp/1435911)
- Güvenli Bağımsız Değişkenler artık AGP 4.0.1'e (aosp/1442337) bağımlıdır
Sürüm 2.3.0
Sürüm 2.3.0
24 Haziran 2020
androidx.navigation:navigation-*:2.3.0
yayınlandı. 2.3.0 sürümü bu kaydetmeleri içerir.
2.2.0'dan bu yana önemli değişiklikler
- Özellik Modülü entegrasyonu:
navigation-dynamic-features-runtime
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
- Somut
DrawerLayout
sınıfına güvenmek yerine,AppBarConfiguration
artık CustomView1.1.0-alpha02
'da sunulanOpenable
arayüzünü (yeni görünümDrawerLayout
, DrawerLayout1.1.0-alpha04
itibarıyla 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()
öğ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. - 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 parametreleri içeren derin bağlantılar artık yeniden sıralanmış sorgu parametrelerini destekliyor; Artık derin bağlantılar eşleştirilirken varsayılan değere sahip veya boş değer içeren bağımsız değişkenler isteğe bağlıdır.
- İyileştirilmiş Animasyon Desteği:
NavHostFragment
artık Parça 1.2.0'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; Artık derin bağlantılar eşleştirilirken varsayılan değere sahip veya boş değer içeren bağımsız değişkenler isteğe bağlıdır. (b/133273839)
- Artık
NavController.getBackStackEntry()
öğesini çağırarak arka yığında bir hedefin veya gezinme grafiğinin kimliğini iletebilirsiniz. Döndürü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ı için animasyon kullanıyor. (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
üzerinden de gezinebilirsiniz. b/110412864
Davranış değişiklikleri
- NavigationUI tarafından sağlanan varsayılan animasyonlar, etkinliklerin ve parçaların varsayılan animasyon hızıyla eşleşecek şekilde 400 ms'den 220 ms'ye yükseltildi. b/130055522
API değişiklikleri
NavHostFragment
iç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, söz konusu hedef veyaNavGraph
olması durumunda gezinme grafiğindeki herhangi bir hedef tarafından işlenip işlenemeyeceğini kontrol edebilmeniz içinNavDestination
bölümüne birhasDeepLink()
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. Böylece, bir Parçaya döndüğünüzde Parça yaşam döngüsü yöntemlerinde koşullu gezinme yaparken oluşan bir sorun düzeltiliyor. b/111598096- Güvenli Bağımsız Değişkenler için, belirtilmemiş
app:argType
içeren 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}"
değerini 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 durumunu engelliyor. b/124538597
Sürüm 2.1.0-alpha01
19 Mart 2019
Bu, 2.1.0
gezinmesinin ilk alfa sürümüdür.
Bağımlılık değişiklikleri
- Navigasyon artık
androidx.core:core:1.0.1
veandroidx.fragment:fragment:1.1.0-alpha05
. Bu sürüm,androidx.legacy:legacy-support-core-utils:1.0.0
bağımlılığı. b/128632612
API Değişiklikleri
- Yeni bir
Navigation.createNavigateOnClickListener(NavDirections)
yöntemi işlevi, kaynak kimliği ve paket. b/127631752 FragmentNavigator.instantiateFragment
artık kullanımdan kaldırıldı. Varsayılan uygulamasında artık Parçalar örneklendirmek içinFragmentFactory
kullanılıyor. b/119054429
Hata Düzeltmeleri
- Gezinme, ekli bağımsız değişkenler olduğunda artık null
Bundle
göndermiyor için düzeltilerekandroid:defaultValue="@null"
kullanılırken sorun gideriliyor. b/128531879 - Güvenli argümanlar artık KotlinPoet 1.1.0'a bağlı olduğundan çok uzun paket isimleri. b/123654948
Sürüm 2.0.0
Sürüm 2.0.0
14 Mart 2019
2.0.0-rc02
tarihinden itibaren değişiklik yapılmadan 2.0.0
gezinmesi yayınlandı.
Sürüm 2.0.0-rc02
6 Mart 2019
Gezinme 2.0.0-rc02, androidx.navigation
ile yeni yapılar sağlar
grup kimliğini belirler ve bağımlılıklarını AndroidX eşdeğerleriyle değiştirir.
2.0.0-rc02'nin davranışı, Gezinme 1.0.0-rc02 davranışıyla aynıdır. 1.0.0-rc02 sürümünden güncellenmek için kodunuzda herhangi bir değişiklik yapmanız gerekmez. bağımlılıklarınızı güncellemenin yanı sıra bağımlılıkları konuşacağız.
Projenizde 2.X sürümlerini kullanmak için AndroidX'e taşındı: Gezinme. Navigasyon 1.0 kararlı sürümü, Destek kullanan son sürüm olacaktır Kitaplık bağımlılıkları; gelecekteki tüm geliştirmelerde, proje yönetiminin AndroidX ve 2.0 kararlı sürümünü temel alır.
AndroidX Öncesi Bağımlılıkları
Navigasyon'un AndroidX öncesi sürümleri için şu bağımlılıkları dahil edin:
dependencies {
def nav_version = "1.0.0"
implementation "android.arch.navigation:navigation-fragment:$nav_version" // For Kotlin use navigation-fragment-ktx
implementation "android.arch.navigation:navigation-ui:$nav_version" // For Kotlin use navigation-ui-ktx
}
Güvenli bağımsız değişkenler için
üst düzey build.gradle
dosyanızda classpath'i takip ediyor
buildscript {
repositories {
google()
}
dependencies {
classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0"
}
}
Sürüm 1.0.0
Sürüm 1.0.0
14 Mart 2019
1.0.0-rc02
tarihinden itibaren değişiklik yapılmadan 1.0.0
gezinmesi yayınlandı.
Sürüm 1.0.0-rc02
26 Şubat 2019
Bu, Navigasyon'un 1.0.0 kararlı sürümü için ikinci sürüm adayıdır. Bu sürüm çeşitli hata düzeltmelerini içerir.
Hata Düzeltmeleri
- Kök grafikte
popBackStack()
değerinin yoksayılmasına neden olan sorun düzeltildi kimliği yoktu b/126251695 navigateUp()
artık uygulamanızın görevine geri dönme işlemini doğru şekilde gerçekleştiriyorFLAG_ACTIVITY_NEW_TASK
olmadan bir derin bağlantı işlendikten sonra çağrıldığında b/126082008ActivityNavigator.applyPopAnimationsToPendingTransition
ile ilgili bir sorun düzeltildi doğru pop çıkış animasyonu uygulanmıyor b/126237567- Güvenli Arg'ler tarafından oluşturulan Kotlin kodu artık Kotlin anahtar kelimelerinden düzgün şekilde kaçıyor
R
sınıfıyla ilişkili paket adındain
vefun
gibi). b/126020455
Sürüm 1.0.0-rc01
21 Şubat 2019
Bu, Navigation'ın 1.0.0 kararlı sürümü için bir sürüm adayıdır. Bu sürümünde bir hata düzeltmesi bulunuyor.
Hata Düzeltmeleri
- Parçalar ve
singleTop
gezinme işlemleri kullanılırken karşılaşılan bir sorun düzeltildi b/124294805
Sürüm 1.0.0-beta02
12 Şubat 2019
Bu sürüm, birçok küçük geliştirme ve önemli hata düzeltmesi içerir.
Yeni Özellikler
- Artık
reference
bağımsız değişkenleri içinandroid:defaultValue
olarak0
kullanabilirsiniz. b/124248602
Davranış değişiklikleri
- Tam derin bağlantı eşlemeleri artık
.*
veya bağımsız değişken eşleşir. b/123969518
Hata Düzeltmeleri
popBackStack()
venavigateUp
artık pop-up işlemi gerçekleştirirken doğru şekildefalse
döndürüyor en son hedef URL'dir. Bu regresyonu düzelterek,1.0.0-beta01
içinde. b/123933201- Navigasyon artık şu öğenin geri yüklenmesi sırasında
ClassLoader
cihazını doğru bir şekilde ayarlıyor: Böylece, örneğin şurada özel sınıfları kullanırken sorunlardan kaçınmış olursunuz:Navigator
kayıtlı durumda veyaNavDestination
öğesine gönderilen bağımsız değişkenlerde. b/123893858 - Güvenli args tarafından oluşturulan NavArgs sınıfları artık bir
Kayıtlı örnek durumundan
Parcelable[]
bağımsız değişkeni. b/123963545 - Güvenli Bağımsız Değişkenler artık gereksiz oluşturulan Kotlin sınıflarını düzgün şekilde temizliyor. b/124120883
Sürüm 1.0.0-beta01
4 Şubat 2019
Bu, Navigasyon'un ilk beta sürümüdür; Ayrıca, Navigasyon Herhangi bir değişiklik olmadığı sürece API'nin bir sonraki sürüme kadar kararlı kalması beklenir. çok önemlidir. Bu sürüm, bazı hata düzeltmeleri ve davranış değişiklikleri içerir.
Davranış değişiklikleri
- Gezinme artık bağımsız değişkenin varsayılan değerlerinin aynı şekilde ele alınmasını sağlıyor
güvenli argümanlarla çalışma zamanında ve Güvenli Bağımsız Değişkenler üzerinden. Sonuç olarak, yalnızca
app:argType="reference"
, başka bir kaynağa ait varsayılan değer noktasına sahip olabilir (örneğin,@color/colorPrimary
). Varsayılan referans değeri kullanılmaya çalışılıyor değeri farklı birapp:argType
olduğunda, XML'i ayrıştırır. b/123551990 - Güvenli argümanlar artık Android Gradle Plugin 3.3.0'a bağlı aosp/888413
- Güvenli argümanlar artık Kotlin 1.3.20'ye bağlı aosp/888414
Hata Düzeltmeleri
- Güvenli Bağımsız Değişkenler artık tüm sürümlerdeki kitaplık ve özellik modüllerinde kullanılabilir hoş geldiniz. b/121304903
- Tek bir
popBackStack()
işleminin şu şekilde olmasına neden olacak regresyon düzeltildi: bir hedefin tüm kopyalarını arkaya göndermek yerine grubun en üstünden tek bir hedefe ulaşma olanağı tanır. b/123552990 FragmentNavigator
durumunun senkronizasyonunun iptal edilmesine neden olan sorun düzeltildi durumuNavController
olur. Bu durumdaIllegalStateException
geri yüklenmeye çalışılıyor. b/123803044NavigationUI
geri okunun çalışmamasına yol açan bir sorun düzeltildi kod karartma ile ProGuard kullanılırken görünür. b/123449431- Güvenli Bağımsız Değişkenler tarafından oluşturulan kod artık bir
app:argType
kullanılarak düzgün şekilde işleniyor..OuterClass$InnerClass
biçiminde statik bir iç sınıfa işaret eder. b/123736741 - Güvenli Bağımsız Değişkenler tarafından oluşturulan Java kodu artık global işlemleri düzgün şekilde işliyor iç içe yerleştirilmiş hedefler var. b/123347762
Sürüm 1.0.0-alpha11
23 Ocak 2019
Bu, Güvenli Bağımsız değişkenler ile ilgili bir sorunu düzelten bir 1.0.0-alpha10
düzeltme sürümüdür.
Hata Düzeltmeleri
- Güvenli Bağımsız Değişkenlerin Yol Tarifi sınıfını içe aktaramaması sorunu düzeltildi genel işlemlerle ilişkilidir. b/123307342
Sürüm 1.0.0-alpha10
23 Ocak 2019
Bilinen Sorunlar
- Güvenli Bağımsız Değişkenler, genel işlemlerle ilişkili Yol Tarifi sınıfını içe aktaramıyor. b/123307342
Bu sürüm, zarar veren API değişikliklerini içeriyor; lütfen aşağıdaki Zarar veren Değişiklikler bölümüne bakın.
Yeni Özellikler
- Kotlin kullanıcıları artık
by navArgs()
mülkü için yetkiyi gecikmeli olarak kullanabilirActivity
içinde oluşturulan Güvenli Bağımsız Değişkenler içinNavArgs
sınıfına referans al veyaFragment
. b/122603367 - Güvenli Bağımsız Değişkenler artık
androidx.navigation.safeargs.kotlin
eklentisi. Kotlin kodu, yalnızca Kotlin modülleri için temel alınan, varsayılan bağımsız değişkenleri ve hâlâ kullanılabilen oluşturucu kalıbına göre sabit sınıflar öncekiandroidx.navigation.safeargs
eklentisi. b/110263087
Davranış Değişiklikleri
- Eşleşen derin bağlantılar artık, en çok ziyaret edilen en eşleşen bağımsız değişkenleri girin. b/118393029
NavController
üzerindesetGraph()
çağrısı yapıldığında arkadaki yığın sıfırlanacak. b/111450672- Bilinmeyen derin bağlantılar artık
IllegalStateException
tetiklemez, ancak yoksayıldı, iç içe yerleştirilmiş veya birden fazlaNavHostFragment
ile ilgili sorunlar düzeltildi. b/121340440
Çarpıcı Değişiklikler
- Şunun için
NavOptions.applyPopAnimationsToPendingTransition()
yöntemi: Bir Etkinliğe pop animasyonları uygulama özelliğiActivityNavigator
klasörüne taşındı. b/122413117 - Güvenli Bağımsız Değişkenler artık
bağımsız değişkenlerdir. Oluşturulan NavDirections'larda bağımsız değişken olmayan yöntemlerin dönüş türü
sınıf artık
NavDirections
. b/123233147 - Güvenli Arg'ler tarafından oluşturulan Yol Tarifi sınıflarının artık herkese açık oluşturucusu yok - yalnızca oluşturulan statik yöntemlerle etkileşim kurmanız gerekir. b/123031660
- Güvenli arg'lar tarafından oluşturulan
NavDirections
sınıf artık herkese açık değil oluşturucusu ile oluşturulur; yalnızca oluşturulan Yol Tarifi sınıflarını gösterir. b/122963206 NavDirections
. dakikada:Bundle
getArguments()
artık işaretlendi@Nullable
yerine@NonNull
olarak. b/123243957
Hata Düzeltmeleri
NavDeepLinkBuilder
artık aynı anda birden fazla öğeyi doğru şekilde işliyor İlettiğiniz bağımsız değişkenleri kullanarak aynı hedefePendingIntent
s bir teste tabi tutulmasıdır. b/120042732NavController
, şu durumlarda artıkpopBackStack()
işlemini doğru şekilde işliyor: iç içe yerleştirilmiş birNavHostFragment
veya arka yığını olan başka bir alt Parçalar kullanarak. 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 genel işlemleri doğru şekilde gerçekleştiriyor bir hedefteki işlemle aynı kimliğe sahip olan uygulamalardır. b/122962504
- Güvenli Bağımsız Değişkenlerin oluşturduğu
NavDirections
sınıf artık doğru şekilde eşitequals()
doğru döndürdüğündehashCode()
değerleri. b/123043662 FragmentNavigator
artık daha iyi hata mesajı veriyor:NavHostFragment
üzerinde özelFragmentTransactions
yapFragmentManager
. 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şikliklerini içeriyor; lütfen aşağıdaki Zarar veren Değişiklikler bölümüne bakın.
Bu
android.arch.navigation:navigation-testing
yapı. Projenin yaşam döngüsünün
NavController
dahili testi için faydalı olacaktır.
NavController
örneğiyle alay etme gibi alternatif test stratejileri
kullanarak doğru navigate()
çağrılarının yapıldığını doğrulayın. Bu
Bu yaklaşım
AndroidDevSummit 2018'de Tek Etkinlik konuşması
özel olarak test etmeyle ilgili ek belgeler üzerinde
Navigasyonu başlatıyor.
Yeni Özellikler
menuCategory="secondary"
içerenMenuItem
öğeleri artık daha sonra öne çıkmayacak veya yığınNavigationUI
yöntemleriyle kullanıldığında. b/120104424AppBarConfiguration
artık yedek ayarlamanıza izin veriyorOnNavigateUpListener
navController.navigateUp()
döndüğünde çağrılacak olan örnekfalse
. b/79993862 b/120690961
Çarpıcı Değişiklikler
argType="reference"
ile bir<argument>
kullanılırken Navigasyon artık kullanılamaz referansı ayrıştırır; bunun yerine ham kaynak kimliğini sağlar. b/111736515onNavDestinationSelected()
artık varsayılan olarak gezinme grafiğinizin başlangıç konumuna geri dönüyor vesetup
yöntemleriyle tutarlı olmalarını sağlar. Ekle Arka yığının patlamasını önlemek içinMenuItem
cihazınızamenuCategory="secondary"
. aosp/852869- Oluşturulan
Args
sınıflarınınfromBundle()
yöntemleri artık boş olmayan bir değer alıyor Null değer atanabilen birBundle
yerineBundle
aosp/845616
Hata Düzeltmeleri
- Bağımsız değişkenler artık derin bağlantılardan doğru
argType
olarak ayrıştırılıyor her zaman dizeler yerine b/110273284 - Gezinme artık herkese açık kaynaklarını doğru şekilde dışa aktarıyor b/121059552
- Safe Args artık Android Gradle Plugin 3.4 Canary 4 ve sonraki sürümlerle uyumlu. b/119662045
Sürüm 1.0.0-alpha08
6 Aralık 2018
Bu sürüm, zarar veren API değişikliklerini içeriyor; lütfen aşağıdaki Zarar veren Değişiklikler bölümüne bakın.
Yeni Özellikler
- Hedef etiketleri,
NavigationUI
yöntemlerle kullanıldığında artık otomatik olarakandroid:label
içindeki{argName}
örneği doğru bağımsız değişkenle değiştirin b/80267266 - Gezinme artık Destek Kitaplığı 28.0.0 sürümüne bağlıdır b/120293333
Çarpıcı Değişiklikler
OnNavigatedListener
,OnDestinationChangedListener
olarak yeniden adlandırıldı b/118670572OnDestinationChangedListener
artıkBundle
bağımsız değişkeni de iletiyor aosp/837142app:clearTask
veapp:launchDocument
özellikleri ve bunlarla ilişkilendirilmiş yöntem kaldırıldı. Aşağıdaki işlemler için grafiğinizin köküyleapp:popUpTo
kullanın: arka yığınınızdaki tüm hedefleri kaldırın. b/119628354ActivityNavigator.Extras
artıkBuilder
kalıbını kullanıyor ve tümIntent.FLAG_ACTIVITY_
işaretlerini ayarla aosp/828140NavController.onHandleDeepLink
,handleDeepLink
olarak yeniden adlandırıldı aosp/836063- Alt sınıflandırmaya uygun olmayan birçok sınıf ve yöntem, örneğin
NavOptions
,NavInflater
,NavDeepLinkBuilder
veAppBarConfiguration
,final
yapıldı aosp/835681 - Desteği sonlandırılan
NavHostFragment.setGraph()
yöntemi kaldırıldı aosp/835684 - Desteği sonlandırılan
NavigationUI.navigateUp(DrawerLayout, NavController)
yöntemi kaldırıldı. aosp/835684 - Parça oluşturma işlemi
FragmentNavigator
hizmetine taşındı. Bu sayede kolayca Parça oluşturma yetkisini birFragmentFactory
kullanıcısına verin. b/119054429 NavGraphNavigator
oluşturucusu artıkContext
kullanmıyor aosp/835340- NavigatorProvider
bir sınıfa eklemektir.
NavigatorProvider
, tarafından geri verildigetNavigatorProvider()
işlevini değiştirmedi. aosp/830660 NavDestination.navigate()
kaldırıldı.Navigator
numaralı telefondannavigate()
adlı kuruluşu ara . aosp/830663Navigator
önemli ölçüde yeniden düzenlenerekOnNavigatorNavigatedListener
ihtiyacı ortadan kaldırıldınavigate
bunun yerine gidilenNavDestination
değerini döndürmesini sağlar.Navigator
örnekleri artık pop etkinlikleriniNavController
öğesine gönderemiyor. DikkatliceOnBackPressedCallback
kullanarak geri düğmesine basıldığında müdahale edin venavController.popBackStack()
işlevini çağırın. aosp/833716
Hata Düzeltmeleri
- Hedef,
<navigation>
öğesi olduğundapopUpTo
artık tutarlı şekilde çalışıyor b/116831650 IllegalArgumentException
hatasına neden olan bir dizi hata düzeltildi. iç içe yerleştirilmiş grafikler kullanıldığında b/118713731 b/113611083 b/113346925 b/113305559<activity>
hedeflerinindataPattern
özelliği artık doldurulacaktoString()
çağırarak Dize olmayan bağımsız değişkenlerden bağımsız değişkenler b/120161365
Güvenli Bağımsız Değişkenler
- Güvenli Bağımsız Değişkenler, Enum değerleri dahil olmak üzere Serileştirilebilir nesneleri destekler. Sıralama türleri
, sınıf adı olmadan enum değişmez değerini kullanarak varsayılan bir değer ayarlayabilir
(örn.
app:defaultValue="READ"
) b/111316353 - Güvenli Bağımsız Değişkenler, desteklenen tüm türlerdeki dizileri destekler b/111487504
- Güvenli Bağımsız Değişkenler artık kaynak dizinlerinin alt klasörlerini yoksayıyor b/117893516
- Safe Args, uygun olduğu durumlarda
@Override
ek açıklamaları ekler b/117145301
Sürüm 1.0.0-alpha07
29 Ekim 2018
Yeni Özellikler
- Yeni bir AppBarConfiguration sınıfı, hangi hedeflerin üst düzey olarak değerlendirileceğini özelleştirmenize olanak tanır. hedefler. Güncellenen belgelere göz atın. inceleyebilirsiniz. b/117333663
- Artık bağımsız değişkenleri grafiğinizin başlangıç hedefine aktarabilirsiniz b/110300470
- Derin bağlantılar artık nokta, kısa çizgi ve artı işareti içeren özel şemaları destekliyor. b/112806402
Çarpıcı Değişiklikler
navigation-testing-ktx
modülü şu kısma katlandı:navigation-testing artifact
ve artık yayınlanmayacak.navigation-testing
yapısı artık Kotlin standardına bağımlı bir yapıya sahip kitaplığını açar. API, Kotlin ile daha tutarlı olacak şekilde değiştirildi kurallarından yararlanır, ancak Java'da yazılan testlerde bunu kullanmaya devam edebilirsiniz.- Meta veri manifestinde kayıtlı gezinme grafikleri artık desteklenmiyor. b/118355937
- İşlemler artık <activity> öğesine eklenemez hedefler. aosp/785539
Hata Düzeltmeleri
- Derin bağlantılar artık sorgu parametrelerini doğru şekilde ayrıştırıyor. b/110057514
- Etkinlik hedefleri artık tüm giriş ve çıkış animasyonlarını doğru bir şekilde uyguluyor. b/117145284
- Özel mod kullanılırken yapılandırma değişikliklerinden sonra ortaya çıkan kilitlenme düzeltildi Gezginler. b/110763345
Güvenli Bağımsız Değişkenler
- Güvenli bağımsız değişkenlerin artık Android Gradle Plugin 3.2.1'e sabit bir bağımlılığı var. b/113167627
- Artık iç sınıflar için yol tarifi oluşturulabilir. b/117407555
- <include> için Yol Tarifi oluşturmayla ilgili sorun giderildi grafiğe dönüştürülebilir. b/116542123
Sürüm 1.0.0-alpha06
20 Eylül 2018
Yeni Özellikler
- 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
- Hatalı geri yığın davranışına neden olan bir hatayı düzeltin. b/111907708
- Oluşturulan Args sınıflarından
equals()
tanesinde bir hata düzeltildi. b/111450897 - Güvenli Bağımsız Değişkenler'deki bir derleme hatasını düzeltin. b/109409713
- Kaynak tanımlayıcılardan Java adlarına dönüşümü düzeltme b/111602491
- Güvenli Bağımsız Değişkenler eklentisinde boş değer atanması ile ilgili hata mesajlarını düzeltin.
- Eksik null değer ek açıklamalarını ekleyin.
Sürüm 1.0.0-alpha04
19 Temmuz 2018
1.0.0-alpha04
gezinmesi ve ilişkili Güvenli Bağımsız değişkenler gradle eklentisi bir dizi API değişikliği, davranış değişikliği ve hata düzeltmesi içerir.
API / Davranış Değişiklikleri
- NavHostFragment, mevcut Fragment'ı her zaman birincil gezinme parçası olarak ayarlar ve alt parça yöneticilerinin, dış NavController'ın popülaritesi başlatılmadan (b/111345778) önce yerleştirilmesini sağlar.
Güvenli Bağımsız Değişkenler
- Zarar Veren Değişiklik:
app:type
, ConstraintLayout 2.0.0-alpha1 b/111110548 gibi diğer kitaplıklarla çakışma olmaması iç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ı yapılırken
IllegalStateException
düzeltildi. b/79632233Animasyonlar kullanılırken oluşan titremelerin düzeltilmesi için artık Destek Kitaplığı 27.1.1 sürümü kullanılmalıdır. b/80160903
defaultNavHost="true" kullanılırken
IllegalArgumentException
sorunu düzeltildi bunu kullanabilirsiniz. b/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 reklamlar oluşturmak için bir çerçeve sunar.
yardımcı olabilir. Bu ilk sürüm 1.0.0-alpha01
.