Navigation Event, sistem düzeyindeki gezinme etkinliklerini uygulamanıza entegre etmek için Kotlin Multiplatform (KMP) çözümü sağlayan bir kitaplıktır. Çeşitli desteklenen platformlarda gezinme talimatlarını işlemek için temel katman olarak tasarlanmıştır.
Temel kavramlar
Navigation Event sistemi, genellikle üst-alt öğe hiyerarşisinde kullanılan merkezi bir dağıtıcı-işleyici modeli üzerine kurulmuştur. Bu model, Jetpack Compose'da bulunanlar gibi karmaşık kullanıcı arayüzü yapılarıyla eşleme yapmak için kullanılır.
NavigationEventDispatcher
NavigationEventDispatcher, tüm kayıtlı gezinme etkinliği tüketicilerini (NavigationEventHandler) yönetmekten ve etkinlik akışını düzenlemekten sorumlu merkezi sınıftır.
Hiyerarşik bir kurulumda, aynı zincirdeki tüm dağıtıcılar tek bir NavigationEventProcessor paylaşır. Bu NavigationEventProcessor, genel durumu yönetir ve ağacın tamamında tek bir birleşik dağıtım sırası olmasını sağlar.
NavigationEventHandler
NavigationEventHandler, NavigationEventDispatcher tarafından gönderilen gezinme etkinliklerini alan ve işleyen soyut bir sınıftır. Bir gezinme hareketi yaşam döngüsünün farklı aşamalarına karşılık gelen geri çağırma yöntemlerini tanımlar. Örneğin, bir hareket başladığında, ilerlediğinde, tamamlandığında veya iptal edildiğinde.
İşleyiciler, kullanıcı gezinme işlemlerine yanıt olarak kullanıcı arayüzünü veya uygulama durumunu güncellemek için bu etkinliklere yanıt verebilir. Bir dağıtıcıya birden fazla işleyici kaydedilebilir ve bunlar önceliğe ve kayıt sırasına göre çağrılır.
NavigationEvent
NavigationEvent, gezinme hareketiyle ilgili ayrıntıları içeren bir veri sınıfıdır.
NavigationEventInfo
NavigationEventInfo, bir gezinme durumu hakkında bağlamsal bilgi sağlayan soyut bir sınıftır.
NavigationEventInput
NavigationEventInput, gezinme etkinlikleri oluşturan ve gönderen bileşenler için soyut bir sınıftır. Platforma özgü etkinlikleri (ör. sistemde geri gitme hareketleri veya düğme tıklamaları) bir NavigationEventDispatcher'ya gönderilebilecek standartlaştırılmış etkinliklere çevirerek gezinme sisteminin "giriş" tarafı olarak işlev görür.
Desteklenen navigasyon talimatları ve tetikleyiciler
Gezinme Etkinliği sistemi, platformlar arası birden fazla gezinme yönünü ve giriş yöntemini destekleyen tasarımlarla yalnızca sistemin geri düğmesini değil, daha fazlasını kapsayacak şekilde tasarlanmıştır.
Desteklenen yönler
Farklı platformlar, farklı gezinme yönlerini destekler:
Platform |
Geri |
Yukarı |
Yönlendir |
Ana Sayfa |
Android telefon |
✅ |
✅ |
🚫 |
✅ |
Android tablet |
✅ |
✅ |
🚫 |
✅ |
Web (Tarayıcı) |
✅ |
✅ |
✅ |
🚫 |
iOS (iPhone/iPad) |
✅ |
🚫 |
✅ |
✅ |
Desteklenen tetikleyiciler
Giriş işleme, her platformda çeşitli mekanizmalar aracılığıyla gerçekleştirilir:
Tetikleyici |
Android telefon |
Web (Tarayıcı) |
iOS (iPhone/iPad) |
Klavyedeki geri düğmesi |
✅ Geri |
❓ |
✅ Geri |
Yazılım geri düğmesi |
🚫 |
✅ Geri |
✅ Geri |
Yazılım yukarı düğmesi |
✅ Yukarı |
🚫 |
🚫 |
Soldan kaydırma hareketi |
✅ Geri |
❓ |
✅ Geri |
Sağdan kaydırma hareketi |
✅ Geri |
❓ |
✅ Yönlendirme |
Alttan yukarı kaydırma hareketi |
✅ Ana Sayfa |
🚫 |
✅ Ana Sayfa |