Evento di navigazione

Navigation Event è una libreria che fornisce una soluzione Kotlin Multiplatform (KMP) per integrare gli eventi di navigazione a livello di sistema nella tua applicazione. È progettato per essere il livello di base per la gestione delle indicazioni stradali su varie piattaforme supportate.

Concetti principali

Il sistema di eventi di navigazione è basato su un modello di dispatcher-handler centralizzato, spesso utilizzato in una gerarchia padre-figlio per mappare strutture UI complesse, come quelle presenti in Jetpack Compose.

NavigationEventDispatcher è la classe centrale responsabile della gestione di tutti i consumer di eventi di navigazione registrati (NavigationEventHandler) e dell'orchestrazione del flusso di eventi.

In una configurazione gerarchica, tutti i dispatcher all'interno della stessa catena condividono un unico NavigationEventProcessor, che gestisce lo stato globale e garantisce un unico ordine di distribuzione unificato in tutto l'albero.

NavigationEventHandler è una classe astratta che riceve e gestisce gli eventi di navigazione inviati da un NavigationEventDispatcher. Definisce i metodi di callback che corrispondono alle diverse fasi del ciclo di vita di un gesto di navigazione, ad esempio quando un gesto inizia, progredisce, viene completato o viene annullato.

I gestori possono rispondere a questi eventi per aggiornare lo stato dell'interfaccia utente o dell'applicazione in risposta alle azioni di navigazione dell'utente. È possibile registrare più gestori con un dispatcher e vengono richiamati in base alla priorità e all'ordine di registrazione.

NavigationEvent è una classe di dati che contiene i dettagli del gesto di navigazione.

NavigationEventInfo è una classe astratta che fornisce informazioni contestuali su uno stato di navigazione.

NavigationEventInput è una classe astratta per i componenti che generano e inviano eventi di navigazione. Funge da "input" del sistema di navigazione, traducendo eventi specifici della piattaforma (come i gesti di sistema indietro o i clic sui pulsanti) in eventi standardizzati che possono essere inviati a un NavigationEventDispatcher.

Indicazioni stradali e trigger supportati

Il sistema di eventi di navigazione è progettato per comprendere più del semplice pulsante Indietro del sistema, con design che supportano più direzioni di navigazione e metodi di input su più piattaforme.

Indicazioni supportate

Diverse piattaforme supportano indicazioni di navigazione variabili:

Piattaforma

Indietro

Su

Inoltra

Home

Smartphone Android

🚫

Tablet Android

🚫

Web (browser)

🚫

iOS (iPhone/iPad)

🚫

Trigger supportati

La gestione dell'input viene eseguita tramite vari meccanismi su ogni piattaforma:

Trigger

Smartphone Android

Web (browser)

iOS (iPhone/iPad)

Pulsante Indietro della tastiera

✅ Indietro

✅ Indietro

Pulsante Indietro software

🚫

✅ Indietro

✅ Indietro

Pulsante di aggiornamento software

✅ Up

🚫

🚫

Gesto da sinistra

✅ Indietro

✅ Indietro

Gesto da destra

✅ Indietro

✅ Avanti

Gesto dal basso

✅ Home

🚫

✅ Home