Navigation

La navegación se refiere a las interacciones que permiten a los usuarios navegar a través, dentro y fuera de las diferentes piezas de contenido de tu app. El componente Navigation de Android Jetpack te permite implementar la navegación, desde simples clics de botones hasta patrones más complejos, como las barras de apps y los paneles laterales de navegación. El componente Navigation también garantiza una experiencia del usuario coherente y predecible, ya que se adhiere a un sistema establecido de conjunto de principios.

El componente Navigation consta de tres partes clave que se describen a continuación:

  • Gráfico de navegación: Es un recurso XML que contiene toda la información relacionada con la navegación en una ubicación centralizada. Esto incluye todas las áreas de contenido individuales dentro de tu app, llamadas destinos, así como las posibles rutas que un usuario puede tomar a través de tu app.
  • NavHost: Es un contenedor vacío que muestra los destinos de tu gráfico de navegación. El componente Navigation contiene una implementación NavHost predeterminada, NavHostFragment, que muestra destinos de fragmentos.
  • NavController: Es un objeto que administra la navegación de la app dentro de un NavHost. NavController orquesta el intercambio de contenido de destino en el objeto NavHost a medida que los usuarios se mueven a través de tu app.

Mientras navegas por tu app, le dices a NavController que quieres navegar por una ruta específica de tu gráfico de navegación o directamente a un destino específico. Luego, NavController muestra el destino apropiado en NavHost.

El componente Navigation ofrece algunas otras ventajas, entre las que se incluyen las siguientes:

  • Administrar transacciones de fragmentos
  • Administrar correctamente las acciones predeterminadas Arriba y Atrás
  • Proporcionar recursos estandarizados para animaciones y transiciones
  • Implementar y administrar vínculos directos
  • Incluir patrones de IU de Navigation, como paneles laterales de navegación y navegación inferior, con un mínimo de esfuerzo adicional
  • Safe Args, un complemento de Gradle que proporciona seguridad de tipo al navegar y pasar datos entre destinos
  • Compatibilidad con ViewModel, que te permite incluir un ViewModel en un gráfico de navegación para compartir datos relacionados con la IU entre los destinos del gráfico

Además, puedes utilizar Navigation Editor de Android Studio para ver y editar tus gráficos de navegación.

Próximos pasos

Para consultar más documentación y recursos relacionados con el componente Navigation, accede a los siguientes vínculos.

Primeros pasos

Más temas

Muestras

Codelabs

Entradas de blog (inglés)

Videos (inglés)