Evento de navegación

Navigation Event es una biblioteca que proporciona una solución de Kotlin Multiplatform (KMP) para integrar eventos de navegación a nivel del sistema en tu aplicación. Está diseñada para ser la capa fundamental que controla las indicaciones de navegación en varias plataformas compatibles.

Conceptos clave

El sistema de eventos de navegación se basa en un modelo centralizado de despachador y controlador, que se suele usar en una jerarquía principal-secundaria para asignar estructuras complejas de la IU, como las que se encuentran en Jetpack Compose.

NavigationEventDispatcher es la clase central responsable de administrar todos los consumidores de eventos de navegación registrados (NavigationEventHandler) y de coordinar el flujo de eventos.

En una configuración jerárquica, todos los despachadores dentro de la misma cadena comparten un solo NavigationEventProcessor, que administra el estado global y garantiza un orden de despacho único y unificado en todo el árbol.

NavigationEventHandler es una clase abstracta que recibe y controla eventos de navegación enviados por un NavigationEventDispatcher. Define métodos de devolución de llamada que corresponden a diferentes etapas del ciclo de vida de un gesto de navegación, como cuando se inicia, avanza, completa o cancela un gesto.

Los controladores pueden responder a estos eventos para actualizar la IU o el estado de la aplicación en respuesta a las acciones de navegación del usuario. Se pueden registrar varios controladores con un dispatcher y se invocan según la prioridad y el orden de registro.

NavigationEvent es una clase de datos que contiene los detalles del gesto de navegación.

NavigationEventInfo es una clase abstracta que proporciona información contextual sobre un estado de navegación.

NavigationEventInput es una clase abstracta para los componentes que generan y envían eventos de navegación. Actúa como el lado de "entrada" del sistema de navegación, ya que traduce eventos específicos de la plataforma (como gestos de atrás del sistema o clics en botones) en eventos estandarizados que se pueden enviar a un NavigationEventDispatcher.

Instrucciones sobre cómo llegar y activadores compatibles

El sistema de eventos de navegación está diseñado para abarcar más que solo el botón Atrás del sistema, con diseños que admiten múltiples direcciones de navegación y métodos de entrada en todas las plataformas.

Indicaciones admitidas

Las diferentes plataformas admiten distintas direcciones de navegación:

Plataforma

Atrás

Aumento

Reenviar

Página principal

Teléfono Android

🚫

Tablet con Android

🚫

Web (navegador)

🚫

iOS (iPhone/iPad)

🚫

Activadores compatibles

El procesamiento de entrada se logra a través de varios mecanismos en cada plataforma:

Activador

Teléfono Android

Web (navegador)

iOS (iPhone/iPad)

Botón Atrás del teclado

✅ Atrás

✅ Atrás

Botón Atrás de software

🚫

✅ Atrás

✅ Atrás

Botón para subir la ventanilla

✅ Arriba

🚫

🚫

Gesto desde la izquierda

✅ Atrás

✅ Atrás

Gesto desde la derecha

✅ Atrás

✅ Adelante

Gesto desde la parte inferior

✅ Principal

🚫

✅ Principal