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 incluye la biblioteca de Navigation, el complemento de Gradle Safe Args y herramientas para ayudarte a implementar la navegación en apps. El componente Navigation controla diversos casos de uso de navegación, desde clics simples en botones hasta patrones más complejos, como las barras de la aplicación y el panel lateral de navegación.
Conceptos clave
En la siguiente tabla, se proporciona una descripción general de los tres conceptos clave de la navegación y los tipos principales que usas para implementarlos.
Concepto |
Propósito |
Tipo |
---|---|---|
Host |
Un elemento de la IU que contiene el destino de navegación actual. Es decir, cuando un usuario navega por una app, esta esencialmente intercambia destinos dentro y fuera del host de navegación. |
|
Gráfico |
Es una estructura de datos que define todos los destinos de navegación dentro de la app y cómo se conectan entre sí. |
|
Controlador |
Es el coordinador central para administrar la navegación entre destinos. El controlador ofrece métodos para navegar entre destinos, controlar vínculos directos, administrar la pila de actividades y mucho más. |
Beneficios y funciones
El componente Navigation proporciona otros beneficios y funciones, incluidos los siguientes:
- Animaciones y transiciones: Proporciona recursos estandarizados para animaciones y transiciones.
- Vínculos directos: Implementa y administra vínculos directos que llevan al usuario directamente a un destino.
- Patrones de la IU: Admite patrones como los paneles laterales de navegación y la navegación inferior con un mínimo trabajo adicional.
- Seguridad de tipos: Incluye el complemento de Gradle para Safe Args que proporciona seguridad de tipos cuando se navega y se pasan datos entre destinos.
- Compatibilidad con ViewModel: Permite determinar el alcance de un elemento
ViewModel
en relación con un gráfico de navegación para compartir datos relacionados con la IU entre los destinos del gráfico. - Transacciones de fragmentos: Admite y controla por completo transacciones de fragmentos.
- Copia de seguridad y acción: Controla las acciones de copia de seguridad y retroceso de forma predeterminada.
Desarrolla tu entorno
Para incluir compatibilidad de navegación en tu proyecto, agrega las siguientes dependencias al archivo build.gradle
de tu app:
Groovy
dependencies { def nav_version = "2.7.7" // Java language implementation implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // Kotlin implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" // Feature module Support implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version" // Testing Navigation androidTestImplementation "androidx.navigation:navigation-testing:$nav_version" // Jetpack Compose Integration implementation "androidx.navigation:navigation-compose:$nav_version" }
Kotlin
dependencies { val nav_version = "2.7.7" // Java language implementation implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") // Kotlin implementation("androidx.navigation:navigation-fragment-ktx:$nav_version") implementation("androidx.navigation:navigation-ui-ktx:$nav_version") // Feature module Support implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version") // Testing Navigation androidTestImplementation("androidx.navigation:navigation-testing:$nav_version") // Jetpack Compose Integration implementation("androidx.navigation:navigation-compose:$nav_version") }
Para obtener información sobre cómo agregar otros componentes de la arquitectura a tu proyecto, consulta Cómo agregar componentes a tu proyecto.
Próximos pasos
Para consultar más documentación y recursos relacionados con el componente Navigation, accede a los siguientes recursos.
Guías detalladas
Si deseas obtener más información para implementar un host de navegación y NavController
, además de detalles sobre cómo interactúan con Compose y otros frameworks de IU, consulta las siguientes guías:
- Cómo crear un controlador de navegación: Describe cómo crear un
NavController
. - Crea tu gráfico de navegación: Detalla cómo crear un host de navegación y un gráfico de navegación.
- Navigate to a destination: Muestra cómo usar un
NavController
para moverse entre los destinos del gráfico.
Codelabs
- Componente de Navigation de Jetpack
- Los fragmentos y el componente de Navigation
- Cómo compilar una app adaptable con navegación dinámica
Videos
- Cómo navegar por la navegación
- 10 prácticas recomendadas para usar una sola actividad
- Actividad única: Por qué, cuándo y hHow (Android Dev Summit 2018)
- Android Jetpack: Cómo administrar la navegación de la IU con el controlador de navegación (Google I/O 2018)