„Navigation Event“ ist eine Bibliothek, die eine KMP-Lösung (Kotlin Multiplatform) für die Integration von Navigationsereignissen auf Systemebene in Ihre Anwendung bietet. Sie ist als Grundlage für die Verarbeitung von Navigationsanweisungen auf verschiedenen unterstützten Plattformen konzipiert.
Schlüsselkonzepte
Das Navigationsereignissystem basiert auf einem zentralen Dispatcher-Handler-Modell, das häufig in einer über- und untergeordneten Hierarchie verwendet wird, um komplexe UI-Strukturen wie in Jetpack Compose abzubilden.
NavigationEventDispatcher
Die Klasse NavigationEventDispatcher ist für die Verwaltung aller registrierten Navigation-Ereignis-Consumern (NavigationEventHandler) und die Orchestrierung des Ereignisflusses verantwortlich.
In einer hierarchischen Einrichtung teilen sich alle Dispatcher in derselben Kette einen einzelnen NavigationEventProcessor, der den globalen Status verwaltet und für eine einheitliche Dispatching-Reihenfolge im gesamten Baum sorgt.
NavigationEventHandler
NavigationEventHandler ist eine abstrakte Klasse, die Navigationsereignisse empfängt und verarbeitet, die von einem NavigationEventDispatcher gesendet werden. Sie definiert Callback-Methoden, die verschiedenen Phasen des Lebenszyklus einer Navigationsgeste entsprechen, z. B. wenn eine Geste beginnt, fortschreitet, abgeschlossen oder abgebrochen wird.
Handler können auf diese Ereignisse reagieren, um die Benutzeroberfläche oder den Anwendungsstatus als Reaktion auf Navigationsaktionen des Nutzers zu aktualisieren. Bei einem Dispatcher können mehrere Handler registriert werden. Sie werden basierend auf Priorität und Registrierungsreihenfolge aufgerufen.
NavigationEvent
NavigationEvent ist eine Datenklasse, die die Details der Navigationsgeste enthält.
NavigationEventInfo
NavigationEventInfo ist eine abstrakte Klasse, die Kontextinformationen zu einem Navigationsstatus bereitstellt.
NavigationEventInput
NavigationEventInput ist eine abstrakte Klasse für Komponenten, die Navigationsereignisse generieren und senden. Es fungiert als „Eingabe“-Seite des Navigationssystems und übersetzt plattformspezifische Ereignisse (z. B. System-Zurück-Gesten oder Schaltflächenklicks) in standardisierte Ereignisse, die an ein NavigationEventDispatcher gesendet werden können.
Unterstützte Wegbeschreibungen und Trigger
Das Navigationsereignis-System ist so konzipiert, dass es mehr als nur die System-Zurück-Schaltfläche umfasst. Es unterstützt mehrere Navigationsrichtungen und Eingabemethoden auf verschiedenen Plattformen.
Unterstützte Richtungen
Auf verschiedenen Plattformen werden unterschiedliche Navigationsanweisungen unterstützt:
Plattform |
Zurück |
Nach oben |
Weiterleiten |
Startseite |
Android-Smartphone |
✅ |
✅ |
🚫 |
✅ |
Android-Tablet |
✅ |
✅ |
🚫 |
✅ |
Web (Browser) |
✅ |
✅ |
✅ |
🚫 |
iOS (iPhone/iPad) |
✅ |
🚫 |
✅ |
✅ |
Unterstützte Trigger
Die Eingabe wird auf jeder Plattform durch verschiedene Mechanismen verarbeitet:
Auslöser |
Android-Smartphone |
Web (Browser) |
iOS (iPhone/iPad) |
Zurück-Taste auf der Tastatur |
✅ Zurück |
❓ |
✅ Zurück |
Software-Schaltfläche „Zurück“ |
🚫 |
✅ Zurück |
✅ Zurück |
Software-Up-Schaltfläche |
✅ Aktiv |
🚫 |
🚫 |
Geste von links |
✅ Zurück |
❓ |
✅ Zurück |
Geste von rechts |
✅ Zurück |
❓ |
✅ Weiterleiten |
Geste vom unteren Bildschirmrand |
✅ Startseite |
🚫 |
✅ Startseite |