navigationevent
| 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-beta01 | - | 
Bağımlılıkları bildirme
navigationevent'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.navigationevent:navigationevent:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.navigationevent:navigationevent:1.0.0-beta01") }
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-beta01
8 Ekim 2025
androidx.navigationevent:navigationevent-*:1.0.0-beta01 iptal edilir. 1.0.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
- NavigationEvent.touchXve- NavigationEvent.touchYiçin- FloatRangeaçıklamasını düzeltin. Bu değerler mutlak piksel koordinatlarını temsil eder ve- 1.0üst sınıra sahip değildir. (I4b205, b/445989313)
- NavigationEventDispatcherOwnercomposable'ını- rememberNavigationEventDispatcherOwnerolarak yeniden düzenleyin. İşlev artık doğrudan- NavigationEventDispatcherOwnerdeğerini döndürüyor. Bu sahibi bir alt bileşene sağlamak için- CompositionLocalProviderkullanın. (I874b2, b/444446629)
Sürüm 1.0.0-alpha09
24 Eylül 2025
androidx.navigationevent:navigationevent-*:1.0.0-alpha09 iptal edilir. 1.0.0-alpha09 sürümü bu commit'leri içerir.
API Değişiklikleri
- Idle()öğesini oluşturmak yerine doğrudan- NavigationEventTransitionState.Idletekil nesnesini kullanın. (Ic7d9e, b/444734264)
- Kolaylık oluşturucuları dahili hale getirin; doğrudan oluşturma yerine genel NavigationEventDispatcher.historyaracılığıyla örnekler alın. (I3b7e0, b/444734264)
- rememberNavigationEventStatearacılığıyla- NavigationEventStateoluşturulması gerekiyor. Oluşturucu artık dahili. (Ie143c, b/444734264)
- onBackCompletedFallbackyerine- fallbackOnBackPressedkullanımlarını ve oluşturucu parametresini kullanın. Davranış değişmedi. Yalnızca tamamlanmış, işlenmemiş geri etkinliklerinde çağrılır. (Idabe9, b/444734264)
- NavigationEventHistory(mergedHistory, currentIndex)öğesinin birincil oluşturucusu artık- internal. Harici tüketiciler, örnek oluşturmak için herkese açık oluşturucuları (boş oluşturucu veya bölüme dayalı oluşturucu) kullanmalıdır. (I1c047, b/444734264)
- View.setViewTreeNavigationEventDispatcherOwner'nın boş değer kabul eden sahibi kabul etmesini sağlama (Ic9eb6, b/444436762)
- NavigationEventInfoartık- interfaceyerine- abstract class. Tüm özel uygulamaları sınıftan (ör.- data class MyInfo : NavigationEventInfo()) devralacak şekilde güncelleyin. (I1e59c, b/444734264)
- Eski NavigationEventDispatcher.stateözelliği vegetState<T>()işlevi kaldırıldı. Yeni ve ayrıdispatcher.transitionState(hareket ilerlemesi için) vedispatcher.history(gezinme yığını için) akışlarını kullanın. (Ic2ceb, b/444734264)
- NavigationEventInput.onInfoChanged(...)geri araması değiştirilir. Güncellemeleri tek bir- NavigationEventHistorynesne olarak almak için yeni- onHistoryChanged(history: NavigationEventHistory)geri çağırma işlevini uygulayın. (I23e0b, b/444734264)
- Yeni bir küresel NavigationEventDispatcher.historyStateFlowtanıtın. Bu genel olmayan akış, izleyicilerin yalnızca gezinme yığınındaki değişikliklere abone olmasına olanak tanır ve hareket ilerlerken kararlı kalır. Bu,transitionStatekarşılığıdır. (I1db10, b/444734264)
- Yeni bir küresel NavigationEventDispatcher.transitionStateStateFlowtanıtın. Bu genel olmayan akış, gözlemcilerin yalnızca fiziksel hareket durumuna (Boşta/Devam Ediyor) abone olmasına olanak tanır. Bu durum, geçmişten ayrıdır. (I171fa, b/444734264)
- NavigationEventHistoryStatesınıfını tanıtın. Bu, gezinme bilgileri geçmişini izlemek için temel API olarak işlev görür ve hareket durumundan ayrıdır. (I81ca5, b/444734264)
- NavigationEventartık- @Immutableolarak işaretleniyor. Böylece Compose Compiler, yeniden oluşturma işlemlerini optimize edebiliyor. (If78c7, b/444734264)
- navigationevent-composeişleyici API'leri güncellendi.- NavigationEventHandlerve- NavigationBackHandler(ve varyantları) artık yükseltilmiş- NavigationEventState'leri kabul eden yeni bir aşırı yüklemeyi destekliyor. Basit aşırı yüklemeler (- currentInfoalan) korunur ve artık bu yeni durum modelini dahili olarak kullanır. (Ic3251, b/444734264)
- Yeni @StableNavigationEventState<T>durum tutucusununavigationevent-composekitaplığına ekleyin. Bu nesne, yerel geçmişi yerel hareket durumuyla birleştirir verememberNavigationEventStateileNavigationEventHandlerarasındaki birincil bağlantı olur. (Ifb69f, b/444734264)
- NavigationEventHandleröğesine yeni bir herkese açık, salt okunur- transitionState: TransitionStateözelliği ekleyin. İşleyiciler artık kendi geçiş durumlarını koruyor ve harici sistemler bu durumu gözlemleyebiliyor. (I9acd2, b/444734264)
- Yeni TransitionStatesealed sınıfını tanıtın. Bu API, gezinme geçmişinden ayrı olarak hareket durumunu gözlemlemek için temel API olarak kullanılır. (Id4beb, b/444734264)
- currentInfo,- backInfove- forwardInfoözelliklerini- NavigationEventHandlerüzerinde herkese açık, salt okunur özellikler olarak kullanıma sunun. (Ia7636, b/444734264)
- NavigationEventHandleruygulamaları artık temel oluşturucuya bir- initialInfo: Tdeğeri sağlamalıdır. (Idcfea, b/444734264)
- OnBackInvokedInputyerine- OnBackInvokedOverlayInputveya- OnBackInvokedDefaultInputkoyun. (I5323f, b/428948766)
- NavigationEventStateöğesini- @Immutableolarak işaretleyin. Bu, bu durumu gözlemleyen composable'ların yeniden oluşturmayı doğru şekilde atlamasını sağlayarak Compose performansını artırır. (I399c8)
- NavigationEventInfo.NotProvidedöğesini- NavigationEventInfo.None;olarak yeniden adlandırın ve referansları güncelleyin. Davranış değişikliği yok. (I5e2d4)
- NavigationEventInfoartık- @Immutableolarak işaretleniyor. Böylece Compose Compiler, yeniden oluşturma işlemlerini optimize edebiliyor. (I7c112)
- Geriye doğru tamamlama için eğlenceli bir arayüzle Java ergonomisini iyileştirin. (I8a860)
- onHasEnabledHandlerChangedöğesini- onHasEnabledHandlersChangedolarak yeniden adlandırın. Bu, geri çağırma raporlarının yalnızca bir işleyiciyi değil, tüm işleyicilerin toplu etkinleştirme durumu hakkında rapor verdiğini netleştirir. (I1af61, b/443711297)
- hasEnabledHandler()öğesini- NavigationEventDispatcher;öğesinden kaldırın ve bunun yerine- NavigationEventInput.onHasEnabledHandlersChangedöğesini kullanın. (Idef72, b/443711297)
- Dinleyicileri gezinme geçmişindeki değişikliklerden haberdar etmek için onInfoChangedgeri çağırma işleviniNavigationEventInputöğesine ekleyin. Bu, mevcut, geri ve ileri yığınların tam bağlamını sağlar ve Girişlerin bağlamsal bilgilere tepki vermesini sağlar. (I69a8b, b/443282983)
- Make NavigationEvent'sswipeEdgean@IntDef(Icee54, b/443950342)
- Bir göndericiyi tek bir öncelikle sınırlamak için priorityparametresiniNavigationEventDispatcher.addInputöğesine ekleyin.onHasEnabledCallbacksChangedgibi etkinlikler artık yalnızca bu öncelikteki geri çağırmalar değiştiğinde tetiklenir. (I3e488, b/443711297)
- Daha anlaşılır olması için NavigationEventDispatcherparametresiniparentDispatcheryerine üst olarak yeniden adlandırın. (Id4f1f, b/443801782)
- Java kullanıcıları için NavigationEventPriorityyerine@IntDef'nin kullanılması (I10a9f, b/440514265)
- Gezinme işleyici sözleşmesini zorunlu kılın. NavigationEventHandler,isBackEnabledveyaisForwardEnableddeğerinitrueolarak ayarlıyorsa artık sırasıylaonBackCompletedveyaonForwardCompleteddeğerini geçersiz kılmanız gerekir. Varsayılan uygulamalar artık sessiz hataları önlemek için istisna oluşturuyor. (I17c62)
- Gezinme etkinlik işleyicileri eklerken geçerli öncelik değerlerini zorunlu kılın. Artık desteklenmeyen bir öncelik ile addHandlerçağrısı yapıldığındaIllegalArgumentExceptionoluşturulacak. Böylece, tüm hedef platformlarda yanlış kullanımla ilgili anında geri bildirim sağlanacak. (I3c474)
Hata Düzeltmeleri
- addHandleröğesini idempotent yapın; yinelenen kayıtları yoksayın. (I052aa, b/444734264)
- Yeniden oluşturma sırasında NavigationEventStateözelliklerini senkronize tutun. (Ib3b4d, b/444734264)
- NavigationEventInputs, kayıt olduktan hemen sonra mevcut bağlamsal bilgileri (geçerli, geri, ileri) aldığından emin olun. (Ie65bf, b/443282983)
Sürüm 1.0.0-alpha08
10 Eylül 2025
androidx.navigationevent:navigationevent-*:1.0.0-alpha08 iptal edilir. 1.0.0-alpha08 sürümü bu commit'leri içerir.
Yeni Özellikler
- Akış tabanlı işleyicinin yerini alan lambda tabanlı NavigationEventHandlerAPI'sini kullanıma sunma. Geri ve ileri hareketlerini akış toplamak yerine basit geri çağırmalarla işleyerek ortak metinleri azaltın ve iptal sorunlarını önleyin. Hedeflenen kolaylık API'leri olarakNavigationBackHandlerveNavigationForwardHandler'yi sağlayın. Akış tabanlıNavigationEventHandleröğesini kaldırın ve yeni geri çağırmalara geçin. (I23bac, b/436248277)
- Pasif dinleyicilerin, birleştirilmiş geri bilgileri aracılığıyla tam gezinme geçmişine erişmesine izin verin. En üstteki geri çağırma ile sınırlı kalmak yerine, kullanıcı arayüzlerinin önizlemeleri ve iç içe yerleştirilmiş gezinme geçmişini oluşturmasını sağlayın. (I7a510, b/436248277)
- Gezinme durumunu netleştirmek ve iç içe yerleştirilmiş işleyicilerle ileri gezinmeyi desteklemek için açık bir geri/geçerli/ileri modeli sunun. (Ib86da, b/420443609)
- NavigationEventCallbacköğesine- onForward*yöntemleri ve- isForwardEnabledekleyin. (Ic100f, b/436248290)
- NavigationEventInputöğesine ileri gezinme desteği ekleyin. (I5734b)
API Değişiklikleri
- TestNavigationEventCallbackile ileri gezinme etkinliklerinin test edilmesini etkinleştirin.- isForwardEnabledve- onForward*kancalarını kullanın. (I21fb5, b/420443609)
- NavEventiçinde- onEvent*geri aramalarını- onBack*olarak yeniden adlandırın. (I228b3, b/436248290)
- SwipeEdgedeğerini satır içi sınıfa dönüştürün. (Id5e01)
- navigationeventkitaplığının Java ile birlikte çalışmasını sağlayın. Tüm herkese açık API'lere artık Java kodundan tam olarak erişilebilir. Bu sayede, karma dilli veya yalnızca Java'dan oluşan projelere sorunsuz entegrasyon sağlanır. (Ibc944,I5465f, I9fb1e, b/440532890b/443040294)
- NavigationEventCallbackrolünü- NavigationEventHandlerolarak yeniden adlandırarak API rollerini netleştirin. Bu değişiklik, çok aşamalı gezinme hareketlerini işleme amacını daha iyi yansıtır. İlgili- addCallbackyöntemi artık- addHandler. (I2492a, b/443040331)
Hata Düzeltmeleri
- İleri gezinmede geri yedeklemenin çalışmasını önleyin. (I74814, b/436248290)
- Tahmini ileri gezinme için destek ekleyin. NavigationEventAPI'ler artık hem geri hem de ileri hareketlerini işleyerek her iki gezinme yönü için tutarlı animasyonlar sağlıyor. (Idc98c, b/436248290)
- Bir IllegalStateExceptionalt öğe kaldırıldığında yeniden oluşturma sırasında kilitlenmeyiNavigationEventDispatcherOwnerönleme. (Iff50c, b/412629020)
- Pasif dinleyiciler artık birleştirilmiş geri bilgiler aracılığıyla tam gezinme geçmişine erişebilir. Böylece kullanıcı arayüzleri, en üstteki geri çağırma ile sınırlı kalmak yerine önizlemeleri ve iç içe yerleştirilmiş gezinme geçmişini oluşturabilir. (I7a510, b/436248277)
Sürüm 1.0.0-alpha07
27 Ağustos 2025
androidx.navigationevent:navigationevent-*:1.0.0-alpha07 iptal edilir. 1.0.0-alpha07 sürümü bu commit'leri içerir.
API Değişiklikleri
- NavigationEventDispatcher.onHasEnabledCallbacksChangedöğesini kaldırın. (I50e97)
- NavigationEventCallback.onEventCompleted()adlı kullanıcıyı katkıda bulunan yapın. (I36b38)
- NavigationEventCallback#on*yöntemlerini- protectedolarak değiştirin. Geçersiz kılmak için arama kodunu güncelleyin. (I6b691)
- DirectNavigationEventInputişlevlerini yeniden adlandırın. (Iffb62)
- NavigationEventInput.onAttachöğesini- onAddedolarak yeniden adlandırın. (I2d0b8)
- NavigationEventInput.onDetachöğesini- onRemovedolarak yeniden adlandırın. (I2d0b8)
- NavigationEventInputHandleröğesini- NavigationEventInputolarak yeniden adlandırın. (I676a4)
- @EmptySuperadlı kişiyi- NavigationEventInput.onHasEnabledCallbacksChangedlistesine ekleyin. (If9853)
- NavigationEventInputHandleriçinde- onAttachuygulayın. (I03648)
- NavigationEventInputHandleriçinde- onDetachuygulayın. (I03648)
- Varsayılan olarak, oluşturulduğunda NavigationEventCallbacketkin olur. (Ic0188)
- NavigationEventInput.addOnHasEnabledCallbacksChangedCallbackyerine- NavigationEventInput.onHasEnabledCallbacksChangedkoyun. (I64e93)
- NavigationEventDispatcher.addInputiçin ana iş parçacığını zorunlu kılın. (Ic2930)
- NavigationEventDispatcher.removeInputiçin ana iş parçacığını zorunlu kılın. (Ic2930)
- Dispatcher.addOnHasEnabledCallbacksChangedCallbacköğesini kaldırın.- Dispatcher.onHasEnabledCallbacksChangedile değiştirin. (Ida3e3, b/436530096)
Hata Düzeltmeleri
- Hâlihazırda eklenmiş bir işleyiciyi eklemenin veya eklenmemiş bir işleyiciyi kaldırmanın yanlış yaşam döngüsü mantığını tetiklediği hata düzeltildi. (I9e47b)
Sürüm 1.0.0-alpha06
13 Ağustos 2025
androidx.navigationevent:navigationevent-*:1.0.0-alpha06 iptal edilir. 1.0.0-alpha06 sürümü bu commit'leri içerir.
Yeni Özellikler
Passive Listeners API
Artık herhangi bir gezinme ana makinesinden özel bağlamsal bilgiler iletebilir ve kullanıcı arayüzünüzün herhangi bir yerinden hareket durumu değişikliklerini pasif olarak dinleyebilirsiniz. Bu ayar, tahmine dayalı geri hareketi ve diğer hareket tabanlı gezinme için bağlama duyarlı animasyonları etkinleştirir.
Bu özellik iki bölümden oluşur:
- Bilgi Sağlama: Özel verileri taşımak için NavigationEventInfokullanın.
- Tüketim Durumu: Hareket ilerlemesini ve bağlamını gözlemlemek için dispatcher.state(NavigationEventState) kullanın.
- NavigationEventCallbackartık tek bir çağrıda hareket bağlamını ayarlamak için- setInfo(currentInfo, previousInfo)yöntemini kullanıma sunuyor (I1d5e7, b/424470518).
- NavigationEventHandler,- currentInfove- previousInfoparametrelerini kabul eden yeni bir aşırı yükleme ekleyerek Compose uygulamalarında bağlam sağlamak için kullanılan birincil API haline gelir (I6ecd3, b/424470518).
Örnek:
  data class MyScreenInfo(val screenName: String) : NavigationEventInfo
  NavigationEventHandler(
      enabled = true,
      currentInfo = MyScreenInfo("Details Screen"),
      previousInfo = MyScreenInfo("Home Screen")
  ) { /* Handle back completion */ }
- NavigationEventDispatcherartık- dispatcher.stateve- dispatcher.getState<T>()'yi (If7fae, Ia90ca, b/424470518) kullanıma sunuyor. Bu- StateFlowtabanlı API'ler, herhangi bir kullanıcı arayüzünün etkinliği doğrudan işlemeye gerek kalmadan hareket ilerlemesini ve bağlamsal verileri gözlemlemesine olanak tanır.
Örnek:
  val gestureState by LocalNavigationEventDispatcherOwner.current!!
      .navigationEventDispatcher
      .state
      .collectAsState()
  val progress = gestureState.progress // Returns latestEvent.progress or 0F
  when (val state = gestureState) {
      is InProgress -> {
          val toScreen = state.currentInfo as MyScreenInfo
          val fromScreen = state.previousInfo as MyScreenInfo
          println("Navigating from ${fromScreen.screenName} to ${toScreen.screenName}")
      }
      is Idle -> { /* Idle state */ }
  }
- Devam ederken - latestEvent.progress, aksi takdirde- 0Fdeğerini döndüren- progressözelliğini- NavigationEventState'ye (I7b196) ekleyin:- val progress = state.progress
- NavigationEventDispatcherOwnercomposable işlevini ekleyerek- NavigationEventDispatcherOwnerörneklerini hiyerarşik olarak oluşturun, bağlayın ve kaldırın.- NavigationEventDispatcherDağıtıcının etkin durumunun dinamik kontrolünü ve otomatik temizlemeyi etkinleştirin.- @Composable fun Sample() { NavigationEventDispatcherOwner(enabled = true) { val localDispatcherOwner = LocalNavigationEventDispatcherOwner.current } }
API Değişiklikleri
- isPassthroughparametresi,- NavigationEventCallbacköğesinden kaldırıldı. (I99028, b/424470518)
- NavigationEventStateoluşturucuları artık dahili. Test için durumu- DirectNavigationEventInputHandlerüzerinden güncelleyin (varsayılan olarak- Idleolur). Durumu- InProgressolarak ayarlamak için- handleOnStartedveya- handleOnProgressed,- Idleolarak geri döndürmek için- handleOnCompletedveya- handleOnCancelledişlevini çağırın.- NavigationEventInfouygulamasını güncellemek için- NavigationEventCallback.setInfouygulamasını kullanın. (I93dca, b/424470518)
- Daha kolay örnek oluşturmaya olanak tanımak ve TestNavigationEventyerine kullanılması gereken testleri basitleştirmek içinNavigationEventöğesine varsayılan parametreler eklendi. (I5dc49, I232f4)
- Belirli mevcut/önceki durumlarla gezinme etkinliklerini test etmek için TestNavigationEventCallbackeklendi. (Idd22e, b/424470518)
- NavigationEventInputHandler, önceki- AbstractNavigationEventInputHandleryerine- DirectNavigationEventInputHandler'de bir uygulama ile değiştirilmek üzere soyut bir sınıf haline getirildi (Iadde5, Ifed40I3897c, b/432616296, b/435416924)
- NavigationEventInputHandleriçindeki- send*işlevlerinin ön ekleri- handle*olarak yeniden adlandırıldı. (Iffcaf)
- OnBackInvokedInputHandler, yeni- abstract- NavigationInputHandlerkapsamını genişletiyor. (Ib45aa)
- NavigationEventDispatcherOwner, kök dağıtıcı oluşturmak için- null'yi açıkça iletmeniz gereken bir üst dağıtıcı gerektirecek şekilde değiştirildi. (Ia6f64, b/431534103)
Hata Düzeltmeleri
- NavigationEventDispatcher.dispose()içinde koleksiyon kopyalarından kaçınarak verimliliği artırdı. (I4ab09)
- NavigationEventHandlersimgesinin etkin durumundaki değişikliklere doğru şekilde yanıt vermemesi sorunu düzeltildi. (Ia5268,I19bec, I5be5c, b/431534103)
Dokümanlar'daki yenilikler
- NavigationEventile ilgili KDocs, birleşik etkinlik sarmalayıcısı ve farklı gezinme türlerindeki (hareketler, tıklamalar) ayrıntı özelliği davranışı olarak rolünü netleştirmek için genişletildi. (I91e8d)
- Geri arama sırasıyla ilgili davranışa özellikle dikkat çekmek için Compose API'leri (BackHandler,PredictiveBackHandler,NavigationEventHandler) için sistem geri işleme dokümanları güncellendi. (I7ab94, )
Bağımlılık Güncellemesi
- NavigationEventartık- navigationevent-composeyapısının tüm KMP hedeflerini desteklemesini sağlayan Compose Runtime 1.9.0-beta03'e bağlıdır. (Ia1b87)
Sürüm 1.0.0-alpha05
30 Temmuz 2025
androidx.navigationevent:navigationevent-*:1.0.0-alpha05 iptal edilir. 1.0.0-alpha05 sürümü bu commit'leri içerir.
Üst-Alt Hiyerarşisi Desteği:
Bir NavigationEventDispatcher artık hiyerarşik bir ağaç yapısı oluşturan üst ve alt dağıtıcılara sahip olabilir. Bu sayede, zincirleme göndericiler aracılığıyla kullanıcı arayüzünün yapısal hiyerarşisini yansıtarak gezinme etkinliklerinin yayılması ve karmaşık Compose kullanıcı arayüzü bileşenlerinde daha esnek bir şekilde yönetilmesi sağlanır. (I194ac)
  // Create a parent dispatcher that will manage navigation events at a higher level.
  val parentDispatcher = NavigationEventDispatcher()
  // Create a child dispatcher linked to the parent, forming a hierarchy.
  val childDispatcher = NavigationEventDispatcher(parentDispatcher)
Hiyerarşik isEnabled özelliği, bir dağıtıcı üzerinde yukarıdan aşağıya kontrol sağlar. Bir dağıtıcıda isEnabled, false olarak ayarlandığında tüm alt dağıtıcılar otomatik olarak devre dışı bırakılır. Bu özellik, gezinme etkinliği sisteminin tüm dallarının verimli bir şekilde kapatılmasını sağlar. (I9e985)
  // Disabling the child dispatcher disables all its callbacks and any of its children recursively.
  childDispatcher.isEnabled = false
Ayrıca, NavigationEventCallback üzerindeki isEnabled özelliği artık ilişkili dağıtıcısının etkinleştirilmiş durumuna saygı duyuyor. Bu nedenle, geri arama ve göndericisi (üst öğeleri dahil) etkinleştirilmediği sürece geri arama etkinleştirilmiş olarak kabul edilmez. Bu sayede, geri arama etkinleştirme üzerinde tutarlı bir hiyerarşik kontrol sağlanır. (I1799a)
  // Create a test callback and add it to the child dispatcher.
  val callback1 = TestNavigationEventCallback(isEnabled = true)
  childDispatcher.addCallback(callback1)
  // Since the childDispatcher is disabled, the callback is effectively disabled as well.
  assertThat(callback1.isEnabled).isFalse()
Göndericilerin ve alt öğelerinin düzgün şekilde temizlenmesi için yeni bir dispose() yöntem kullanıma sunuldu. Calling dispose(), bellek sızıntılarını önlemek için dinleyicileri durdurur, tüm alt dağıtıcıları yinelemeli olarak kaldırır, dağıtıcıya kaydedilen tüm geri çağırma işlemlerini kaldırır ve dağıtıcının üst öğeyle bağlantısını kaldırır. Bu sayede, göndericilere artık ihtiyaç duyulmadığında kaynakların doğru şekilde serbest bırakılması sağlanır. (I9e985)
  // Dispose the child dispatcher to clean up resources.
  childDispatcher.dispose()
Atılan bir dağıtıcıda herhangi bir herkese açık yöntem çağrılırsa hemen bir IllegalStateException oluşturulur. Bu, sessiz hataları önler ve geliştiricilerin geliştirme sırasında uygunsuz kullanımı belirlemesine yardımcı olur. (Ic2dc3)
  val callback2 = TestNavigationEventCallback()
  // Attempting to use a disposed dispatcher will throw an exception.
  assertThrows<IllegalStateException> {
      childDispatcher.addCallback(callback2)
  }
Not: aosp/3692572'de Compose kullanıcı arayüzünde alt dağıtıcıyı otomatik olarak yöneten yeni bir NavigationEventDispatcherOwner Composable kullanıma sunacağız. Ancak bu değişiklik mevcut sürümde yer almadı ve bir sonraki sürümde kullanıma sunulması planlanıyor.
Gezinme Testi Kitaplığı
- navigationeventkitaplığı için özel test yardımcı programları sağlamak üzere- navigationevent-testingmodülünü ekleyin. (0e50b6)
- Test için TestNavigationEventCallbacksahte yardımcı sınıfı ekleyin. Geri arama yöntemiyle yapılan aramaları kaydeder ve doğrulama için alınanNavigationEventöğelerini saklar. (4a0246)
- TestNavigationEventsahte yardımcı işlevi ekleyerek varsayılan değerlere sahip- NavigationEventörnekleri oluşturun ve gezinme etkinliği işleme için birim testlerini basitleştirin. (3b63f5)
- Test için TestNavigationEventDispatcherOwnersahte yardımcı sınıfı ekleyin. Testlerde etkileşim doğrulamayı desteklemek için geri dönüş ve etkinleştirilmiş durum değiştirildi etkinlik sayılarını izler. (c8753e)
API Değişiklikleri
- KMP ortak kodunda kullanılabilir hale getirmek için NavigationEventInputHandleröğesiniandroidMainkonumundancommonMainkonumuna taşıyın. Etkinlikleri göndermek için yenipublic send*yöntemleri ekleyin.NavigationEventDispatcher'daki gönderme işlevlerinipublic'daninternal'ye değiştirin. Kullanıcıların artık etkinlik göndermek içinNavigationEventInputHandler'ü kullanması gerekir. (Ia7114)
- NavigationInputHandleröğesini- OnBackInvokedInputHandlerolarak yeniden adlandırın. (I63405)
Hata Düzeltmeleri
- Ara liste ayırmalarından kaçınarak ve geri çağırma gönderme performansını artırarak ek yükü azaltmak için NavigationEventDispatcheröğesini yeniden düzenleyin. (I82702, I1a9d9)
- Derleme sırasında geçerli değer aralıklarını zorunlu kılmak ve API güvenliğini artırmak için NavigationEvent'dekitouchX,touchYveprogressalanlarına@FloatRangeek açıklamaları ekleyin. (Iac0ec)
Sürüm 1.0.0-alpha04
2 Temmuz 2025
androidx.navigationevent:navigationevent-*:1.0.0-alpha04 iptal edilir. 1.0.0-alpha04 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- implementedInJetBrainsFork,- navigationevent-composeiçin kullanıldı ve- commonStubshedefi eklenerek Compose kurallarına uygun hale getirildi. JetBrains tarafından değişiklik istendi. (f60c79)
- Doğru saplama oluşturmayı sağlamak için Kotlin/Native'e yönelik Compose derleyici eklentisinin uygulanması düzeltildi. Herkese açık API'ler veya davranışlar etkilenmez. (1890c9)
Sürüm 1.0.0-alpha03
18 Haziran 2025
androidx.navigationevent:navigationevent-*:1.0.0-alpha03 iptal edilir. 1.0.0-alpha03 sürümü bu commit'leri içerir.
Yeni Özellikler
- navigationevent-composekitaplığındaki Jetpack Compose özelliklerini desteklemek için yeni bir- navigationevent-composemodülü kullanıma sunuldu.- navigationevent(980d78)
- NavigationEventCompose, yeni bir- LocalNavigationEventDispatcherOwneryerel kompozisyon ekledi. Geçerli kompozisyonda kullanılabilir olup olmadığını daha iyi belirlemek için null değer döndürür.- NavigationEventHandler, temel alınan sahip bulunamazsa artık hata verecek. (62ffda)
- NavigationEventCompose, (tahmini geri hareketi) etkinliklerini işlemek için yeni bir- NavigationEventHandlerComposable ekledi. Sağladığınız askıya alma lambda'sında toplanması gereken- Flow- NavigationEventnesnesi sağlar c42ba6:
NavigationEventHandler { progress: Flow<NavigationEvent> ->
  // This block is executed when the back gesture begins.
  try {
    progress.collect { backEvent ->
      // Handle gesture progress updates here.
    }
    // This block is executed if the gesture completes successfully.
  } catch (e: CancellationException) {
    // This block is executed if the gesture is cancelled
    throw e
  } finally {
    // This block is executed either the gesture is completed or cancelled
  }
}
API Değişiklikleri
- Her NavigationEventCallbackartık aynı anda yalnızca birNavigationEventDispatcherile kaydedilebilir. Birden fazla dağıtıcıya eklenmesiIllegalStateExceptionhatası verir. Bu davranışın, birden fazla göndericiye izin verenOnBackPressedDispatcher'dan farklı olduğunu unutmayın. (e82c19)
- Gezinme sırasında mutasyonu önlemek için isPassThrough,valolarak değiştirildi. Bu durum,NavigationEvent'nin gönderimini bozabilir. (I0b287)
Sürüm 1.0.0-alpha02
4 Haziran 2025
androidx.navigationevent:navigationevent-*:1.0.0-alpha02 iptal edilir. 1.0.0-alpha02 sürümü bu commit'leri içerir.
API Değişiklikleri
- NavigationEventDispatcher'nın ikincil oluşturucusunu varsayılan bağımsız değişkenlerle değiştirin. (I716a0)
- Öncelikli özelliği NavigationEventCallbackhesabından kaldırın. Bunun yerineNavigationEventDispatcher.addCallback()uygulamasına öncelik verin. (I13cae)
Hata Düzeltmeleri
- Kapatılabilir öğelerin dahili listesi eşzamanlı olarak değiştirildiğinden NavigationEventCallback.remove()çağrıldığında oluşabilecekConcurrentModificationExceptiondüzeltildi. (b/420919815)
Sürüm 1.0.0-alpha01
20 Mayıs 2025
androidx.navigationevent:navigationevent-*:1.0.0-alpha01 iptal edilir. 1.0.0-alpha01 sürümü bu commit'leri içerir.
Yeni Özellikler
- androidx.navigationeventkitaplığı, sistem geri ve tahmini geri işlemlerini gerçekleştirmek için KMP öncelikli bir API sağlar.- NavigationEventDispatcher, sistem geri etkinliklerini almak için bir veya daha fazla- NavigationEventCallbackörneğini kaydetmek üzere ortak API'ler olarak işlev görür.
- Bu katman, androidx.activityiçinde daha önce yayınlanan API'lerin altında yer alır ve daha üst düzey bileşenlerde Etkinlik API'lerini kullanmanın veya doğrudan Android çerçevesiOnBackInvokedDispatcherAPI'lerini kullanmanın daha az fikir sahibi olunarak yapılabilecek bir alternatifi olmayı amaçlar.androidx.activityAPI'leri, Activity 1.12.0-alpha01 kapsamında Navigation Event API'lerinin üzerine yeniden yazıldı.
