navigation3
Son Güncelleme | Kararlı sürüm | Sürüm Adayı | Beta Sürümü | Alfa sürümü |
---|---|---|---|---|
8 Ekim 2025 | - | - | - | 1.0.0-alpha11 |
Bağımlılıkları bildirme
navigation3'e bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle
dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Groovy
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.0.0-alpha11" implementation "androidx.navigation3:navigation3-ui:1.0.0-alpha11" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.0.0-alpha11") implementation("androidx.navigation3:navigation3-ui:1.0.0-alpha11") }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Bu yapıyla ilgili sürüm notu yok.
Sürüm 1.0
Sürüm 1.0.0-alpha11
8 Ekim 2025
androidx.navigation3:navigation3-*:1.0.0-alpha11
iptal edilir. 1.0.0-alpha11 sürümü bu commit'leri içerir.
API Değişiklikleri
SceneStrategy
üzerindekicalculateScene
yöntemi artık@Composable
değil. Bunun yerine, bu çalışmayıSceneStrategy
yönteminizi (yanirememberMySceneStrategy()
yönteminde) oluşturma aşamasına taşıyabilirsiniz. Bu yöntem, herhangi birrememberSaveable
değerinin veya anahtarremember
ifadelerinin ömrünü doğru değerlere göre tanımlamanıza olanak tanır. (If1733, b/448709506)SceneStrategy.calculateScene
içinonBack
parametresi, bunun isteğe bağlı bir parametre olduğunu daha net bir şekilde belirtmek ve gelecekteki Navigation3 özellikleri için bir uzantı noktası sağlamak amacıylaSceneStrategyScope
'nin yeni alıcı kapsamına taşındı. (I3aea3, b/448460407)NavDisplay
veSceneStrategy
'ye iletilenonBack
lambda'sı, birden fazla girişin ne zaman açılması gerektiğini belirten bircount: Int
parametresi sağlamaz. Bunun yerine,() -> Unit
lambda'sı, Sahne isteklerinizin birden fazla giriş göstermesini istediğiniz nadir durumlarda art arda birden çok kez çağrılacak. (Idedb5, b/446989346)NavEntryWrapper
sınıfını kaldırın ve işlevini, yeni içeriklerleNavEntry
alan yeni bir ikincil oluşturucuya sahip nihai birNavEntry
sınıfıyla değiştirin. Bu sayede, bir girişi yeni içerikle sarmalama özelliği desteklenmeye devam eder. (I7da2a, b/444447130)navEntryDecorator
işlevi kaldırıldı ve yerine artık herkese açık olan ve alt sınıflara ayrılabilenNavEntryDecorator
sınıfı eklendi.navEntryDecorator
işlevi,NavEntryDecorator
oluşturup döndürüyordu. (If81f8, b/444447434, b/447381176)SavedStateNavEntryDecorator
, girişleriSaveableStateHolder
ile süslediği içinSaveableStateHolderNavEntryDecorator
olarak yeniden adlandırıldı. Dekoratör, işlevsel olarakNavEntryDecorator
için bir fabrika olduğundan işlevden sınıfa da yeniden düzenlendi. (Ie6013, b/447381176)NavDisplay
yerineSceneState
kullanan özel gösterimlerin artık dahili olanLocalEntriesToRenderInCurrentScene
kompozisyon yerelini kullanması gerekmiyor. (Ic40ef, b/414668196)SceneSetupNavEntryDecorator
verememberSceneSetupNavEntryDecorator()
, herkese açık API yüzeyinden kaldırıldı. Bu işlev artık manuel olarak eklemenizi gerektirmeden varsayılan olarak dahil edilmektedir. (Ieae42, b/444479133)NavEntry
,DialogScene
,SinglePaneScene
veSceneState
artık eşittir işlevini kullanıyor. (I96121)- Sahne arayüzünde, NavDisplay için sahneye özel meta veriler eklemeye yönelik yeni bir meta veri alanı bulunur. Bu, bir Sahne'nin
NavDisplay
üzerindeki meta verileri (ör. geçişlerle) geçersiz kılmasına olanak tanır. (I1fd96, b/443955625) - Gereksiz genel tür parametresini kaldırarak
rememberNavBackStack
imzasını basitleştirin. İşlev artıkvararg elements: NavKey
değerini kabul ediyor. (I03e45) NavDisplay
için varsayılan animasyonlar artık tüm platformlardan çağrılabilmelerini sağlayan ortak API'nin bir parçası. (I71af9, b/447147159)- Sınıfın
NavEntries
oluşturmak için kapsam sağlayan bir Kotlin DSL'si olduğunu doğru şekilde yansıtmak üzereEntryProviderBuilder
öğesiniEntryProviderScope
olarak yeniden adlandırın. (Ia7465)
Hata Düzeltmeleri
rememberNavBackStack()
artık NavKey için polimorfik serileştirmeyi zorunlu kılıyor ve doğru durum geri yüklemesini sağlamak üzere yapılandırılmış özel birSavedStateConfiguration
gerektiriyor. KDoc, tüm NavKey alt türlerinin sağlanan SerializersModule'e kaydedilmesi gerektiğini yansıtacak şekilde güncellendi. (I6de37,I782f2, b/446664383)
Sürüm 1.0.0-alpha10
24 Eylül 2025
androidx.navigation3:navigation3-*:1.0.0-alpha10
iptal edilir. 1.0.0-alpha10 sürümü bu commit'leri içerir.
API Değişiklikleri
NavDisplay
ile süslenmişNavEntry<T>
listesini alan yeni birNavDisplay
aşırı yüklemesi ekleyin.rememberDecoratedNavEntries
(I4025b, b/441940314)DialogScene
, yeni bir pakete taşındı. (Ia5840)- Herkese açık API'yi kaldırın
DecorateNavEntry
. Bunun yerine, bir NavEntry'yi dekoratör listesiyle sarmak içinrememberDecoratedNavEntries
kullanın. (Id8c09) - Navigation3 kullanıcı arayüzü artık yeni varsayılan
transitionSpec
özellikleri sunuyor. (Ibcabd) - Sahneleri yönetmeye yardımcı olacak yeni bir
SceneState
nesnesi eklendi. Bu,SceneState
veNavigationEventState
değerlerini alan yeni birNavDisplay
aşırı yüklemesi de sağlar. (Idfb46, b/444479133) NavDisplay
artıkTransition
'nincurrentState
vetargetState
özelliklerine bakarak,Scene
veScene
özelliklerine göre geçişleri özelleştirmenize olanak tanıyor. (I906cc, b/443872322)NavigationEventInfo
artıkinterface
yerineabstract class
. Tüm özel uygulamaları sınıftan (ör.data class MyInfo : NavigationEventInfo()
) devralacak şekilde güncelleyin. (I1e59c, b/444734264)navigationevent-compose
işleyici API'leri güncellendi.NavigationEventHandler
veNavigationBackHandler
(ve varyantları) artık yükseltilmişNavigationEventState
'leri kabul eden yeni bir aşırı yüklemeyi destekliyor. Basit aşırı yüklemeler (currentInfo
alan) korunur ve artık bu yeni durum modelini dahili olarak kullanır. (Ic3251, b/444734264)- Tüm Scene API'leri navigation3-ui'den navigation3-runtime'a taşındı. Bu, artık navigation3-runtime tarafından desteklenen tüm platformlarda kullanılabilecekleri anlamına geliyor. (I431d0, b/444449993)
- Dekore edilecek
NavEntry
listesini alan yeni birrememberDecoratedNavEntries
aşırı yüklemesi eklendi. Girişler, diğer giriş dekoratörleriyle önceden süslenmiş olabilir. (I5a034, b/444230270) - navigation3 joker karakter türü parametrelerini kaldırma (I02540)
entryProvider
DSL'de genel öğelerin işlenmesi iyileştirildi. Daha önceandroidx.navigation3.runtime.entry
içe aktarıyorsanız artık bu gerekli değildir. (I299fc)- Yansımaya dayalı
NavBackStackSerializer
aşırı yüklemesini Android ile kısıtlayın. Bu, çok platformlu kodda açıkSavedStateConfiguration
aşırı yüklemesinin kullanılmasını zorunlu kılarak Android dışı platformlarda örtülü çalışma zamanı serileştirme hatalarını önler. (I73313, b/420443609) - Make
NavigationEvent
'sswipeEdge
an@IntDef
(Icee54, b/443950342) NavBackStack
serileştirmesini Android ile kısıtlayın. Bu, Android dışı platformlarda çalışma zamanı hatalarını önler. Çok platformlu durum kaydetme içinrememberNavBackStack
ile açık birSavedStateConfiguration
kullanın. (I1e418, b/420443609)
Hata Düzeltmeleri
- İç içe yerleştirilmiş
NavDisplay
tek bir alt giriş içerdiğinde, tahmini geri gitme sırasında kilitlenme sorunu düzeltildi. (I2cdc0, b/441933162)
Sürüm 1.0.0-alpha09
10 Eylül 2025
androidx.navigation3:navigation3-*:1.0.0-alpha09
iptal edilir. 1.0.0-alpha09 sürümü bu commit'leri içerir.
API Değişiklikleri
DecoratedNavEntryProvider
, sağlanan dekoratörlerin listesiyle (I0fe1c, b/441328236) süslenmiş NavEntry'ler oluşturan ve döndürenrememberDecoratedNavEntries
ile değiştirildi.NavBackStack
artıkNavKey
türü üzerinde geneldir. Bu sayede uygulamalar ve kitaplıklar, geri yığınları içinNavKey
ile sınırlı kalmak yerine özel anahtar türleri tanımlayabilir. (I4d190,Iad2f4, b/420443609)NavBackStack
artık@kotlinx.serialization.Serializable
olduğundan, işlem sonlandırma ve yapılandırma değişiklikleri sırasında gezinme durumunu ek standart kod olmadan kaydetmek ve geri yüklemek mümkün. (I2c3cf, b/420443609)RememberNavBackStack
, tüm platform hedeflerinde sağlanması içincommonMain
konumuna taşındı. (Id69e7, b/420443609)
Hata Düzeltmeleri
NavDisplay
artık her birNavEntry
öğesini doğruLifecycle.State
öğesine doğru şekilde taşıyor. (I30aac, b/440145700)NavDisplay
öğesinin,NavigationEvent
kitaplığınınLocalNavigationEventDispatcherOwner
aracılığıyla ayarlanan tüm yerleştirilmişNavigationEventDispatcherOwner
öğelerini yoksaymasına neden olan sorun düzeltildi. (I6224a)
Bağımlılık Değişiklikleri
- Navigation3 artık NavigationEvent Alpha08'e bağlıdır.
Sürüm 1.0.0-alpha08
27 Ağustos 2025
androidx.navigation3:navigation3-*:1.0.0-alpha08
iptal edilir. 1.0.0-alpha08 sürümü bu commit'leri içerir.
Yeni Özellikler
Navigation3 Runtime
yapay ürünlerine yeni Kotlin MultiPlatform (KMP) hedefleri eklendi.Navigation3 Runtime
artık toplamda şu platformları destekliyor: JVM (Android ve Masaüstü), Native (Linux, iOS, watchOS, macOS, MinGW) ve Web (JavaScript, WasmJS). (I55078, b/424410398, b/419294028, b/419046226). Not: Bu,Navigation3 UI
yapısı için KMP hedefleri sağlamaz. Diğer platformlarda kendi özelNavDisplay
uygulamanızı kullanmanız gerekir. Desteklenmesini istiyorsanız lütfen buradan Jetbrains sorununa oy verin ve ek destek için ilerleme durumunu takip edin.NavDisplayInfo
nesnesi artık herkese açık veNavDisplay
öğesinden görünür girişlerin listesini almak için kullanılabilir. (Ibc91f)
API Değişiklikleri
- Durum geri yükleme işlemini gerçekleştirmek için
rememberNavBackStack
ile birlikte kullanılacak yeni birNavBackStackSerializer
eklendi.rememberNavBackStack()
artık kendi yapılandırmanızı sağlamak için kullanılabilecek birSavedStateConfiguration
de alıyor. (I2f4d2, I4cd58, b/420443609)
Hata Düzeltmeleri
- Gezinmenin yanlış yaşam döngüsü etkinliklerinin tetiklenmesine neden olduğu sorun düzeltildi. (I8bf6d, b/425901162, b/434109022)
Bilinen Sorunlar
- I8bf6d tarafından sunulan bir hata nedeniyle yaşam döngüleri, sahneler yerine tek tek girişlere göre belirleniyordu. Bu durum,
NavEntry
'e sağlanankey
'ninString
olmadığı veyaNavEntry
'üncontentKey
'ı geçersiz kılıpkey
'ye eşitlemediği tüm durumlarda yaşam döngüsünün bozulmasına neden oluyordu (Bunu yapmanın, anahtarınızınBundle
'ye kaydedilmesini zorunlu kıldığını unutmayın). Bu hata, bir sonraki sürümde düzeltildi. (b/440145700)
Sürüm 1.0.0-alpha07
13 Ağustos 2025
androidx.navigation3:navigation3-*:1.0.0-alpha07
iptal edilir. 1.0.0-alpha07 sürümü bu commit'leri içerir.
MinSdk Güncellemesi
- AndroidX için varsayılan minSdk, API 21'den API 23'e taşındı (Ibdfca, b/380448311, b/435705964, b/435705223).
API Değişiklikleri
SavedStateNavEntryDecorator
artık durumları kaydetmek ve geri yüklemek içinSaveableStateProvider
'de yerleşik olarak bulunanSaveableStateRegistry
özelliğini kullanıyor. (If8d9a)predictivePopTransitionSpec
artık kaydırma kenarını parametre olarak sağlıyor. Bu sayede, kullanıcının Tahmini Geri hareketini hangi kenardan başlattığına bağlı olarak geçişi özelleştirebilirsiniz. (I753a8)
Hata Düzeltmeleri
- En son sahne hatırlanmadığı için özel sahnelerin sonsuza kadar yeniden hesaplanmasına neden olan sorun düzeltildi. (I7ba84, b/418153031)
Bağımlılık güncellemesi
- Navigation3 artık Navigation Event
1.0.0-alpha06
'e bağlıdır.
Sürüm 1.0.0-alpha06
30 Temmuz 2025
androidx.navigation3:navigation3-*:1.0.0-alpha06
iptal edilir. 1.0.0-alpha06 sürümü bu commit'leri içerir.
Bağımlılık Güncellemesi
- Navigation3 artık Navigation Event
1.0.0-alpha05
'e bağlıdır.
Sürüm 1.0.0-alpha05
2 Temmuz 2025
androidx.navigation3:navigation3-*:1.0.0-alpha05
iptal edilir. 1.0.0-alpha05 sürümü bu commit'leri içerir.
Davranış Değişiklikleri
NavEntry
'nın durumu artık kesinlikleNavDisplay
'ya iletilen mevcut dekoratörler listesine dayanmaktadır. Bu, geri yığınında NavEntry'lerin durumunu korumak için birden fazla geri yığını olması durumunda süslemelerin geri yığınlarınız boyunca değiştirilmesi gerektiği anlamına gelir. Aksi takdirde, girişler değiştirilmiş gibi değil, çıkarılmış gibi temizlenir. (I7a759, b/428033667)
Sürüm 1.0.0-alpha04
18 Haziran 2025
androidx.navigation3:navigation3-*:1.0.0-alpha04
iptal edilir. 1.0.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
NavEntry.content
artık gizli.NavEntry
içeriğini çağırmak için artık çağırmak içinkey
parametresi gerektirmeyen yeniNavEntry.Content()
API'sini çağırın. (Icd0fd, b/420991203)NavEntry.key
artık özel bir alan.NavEntry
ve ilgili durumları, yenicontentKeyFactory
lambda'dan oluşturulan ve varsayılan olarakNavEntry.key
'ten oluşturulan kaydedilebilir bir karma olan yenicontentKey
alanı ile tanımlanmalıdır (I81a6c, b/422001357, b/420991203 I2d7d4, b/420991203, b/422841812)
Bağımlılık Değişiklikleri
- Navigation3 artık yeni
androidx.navigationevent.compose
yapay ürününe bağlıdır.
Sürüm 1.0.0-alpha03
4 Haziran 2025
androidx.navigation3:navigation3-*:1.0.0-alpha03
iptal edilir. 1.0.0-alpha03 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
Navigation3
, artık değiştirilip başka birbackStack
örneğiyle değiştirilenbackStacks
için dekoratör durumlarını temizlemeyecek. (I28a42, b/415076044)
Sürüm 1.0.0-alpha02
23 Mayıs 2025
androidx.navigation3:navigation3-*:1.0.0-alpha02
iptal edilir. 1.0.0-alpha02 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
SavedStateNavEntryDecorator
ile ilgili, aynı özellik değerlerine sahip farklı veri sınıflarında çakışmalara neden olan bir sorun düzeltildi. (b/418070648, Iff4775)- Açık bağımlılıklar bildirilmeden çalıştırıldığında kilitlenmelere neden olan eksik sınıf sorunu düzeltildi. (b/419049149, I4b4ed)
Sürüm 1.0.0-alpha01
20 Mayıs 2025
androidx.navigation3:navigation3-*:1.0.0-alpha01
iptal edilir. 1.0.0-alpha01 sürümü bu commit'leri içerir.
Yeni Özellikler
Navigation3, Jetpack Compose uygulama içi gezinmeyi işlemek için özel olarak oluşturulmuş yeni bir gezinme kitaplığıdır. androidx.navigation3.runtime
yapısı, yapı taşlarını sağlarken androidx.navigation3.ui
yapısı, NavDisplay
API'si aracılığıyla kullanıcı arayüzü katmanını sağlar. Geliştiriciler, kendi durumlarını doğrudan NavDisplay
composable işlevine sağlayabilir. Bu işlev, geliştirici durumundaki değişikliklere göre içeriği değiştirir.
@Serialiable object Home : NavKey
@Serialiable object Chat : NavKey
val backStack = rememberNavBackStack(Home)
NavDisplay(backStack, entryProvider = entryProvider {
entry<Home> {
Column {
Text(“Home”)
Button(onClick = { backStack.add(Chat) } ) {
Text(“Go to Chat”)
}
}
}
entry<Chat> { /* My Composable Content */ }
})
Daha fazla bilgi için Navigation3 kılavuzuna bakın.