0Pricing
Android Academy · Lección

Navegar entre pantallas

Avance y retroceda entre destinos

Navegar entre pantallas es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 4 lecciones en total.

Avanzar

Una vez configurado su NavHost, puede pasar a otra pantalla llamando a navigate en el NavController con la ruta de destino.

navController.navigate("details")

Activar desde un botón

La navegación suele producirse en una devolución de llamada, como el onClick de un botón.

Button(onClick = { navController.navigate("details") }) {
    Text("Open details")
}

La pila de retroceso

Cada llamada a navigate agrega el nuevo destino a la pila de retroceso. El botón Atrás del sistema lo extrae automáticamente y vuelve a la pantalla anterior.

popBackStack

Para volver mediante programación, por ejemplo desde un botón personalizado de «Atrás», llame a popBackStack. Esto elimina el destino actual y vuelve al anterior.

navController.popBackStack()

navigateUp

navigateUp() es similar y es la opción adecuada para la flecha Atrás de la barra de herramientas. Respeta la jerarquía de navegación.

navController.navigateUp()

Evitar destinos duplicados

Si pulsa un botón dos veces rápidamente, podría agregar la misma pantalla dos veces. Use launchSingleTop = true para evitar apilar copias duplicadas de un destino.

navController.navigate("details") {
    launchSingleTop = true
}

popUpTo

popUpTo borra parte de la pila de retroceso mientras navega. Es útil después de iniciar sesión: permite ir al inicio y eliminar la pantalla de inicio de sesión para que Atrás no vuelva a ella.

navController.navigate("home") {
    popUpTo("login") { inclusive = true }
}

inclusive

inclusive = true significa que el destino de popUpTo también se elimina. Con inclusive = false, la extracción se detiene justo antes de él.

Mantener las pantallas desacopladas

En lugar de pasar todo el NavController a cada pantalla, pase lambdas. La pantalla llama a onOpenDetails() y no necesita conocer los detalles internos de la navegación.

@Composable
fun HomeScreen(onOpenDetails: () -> Unit) {
    Button(onClick = onOpenDetails) { Text("Details") }
}

Conectar la lambda

El NavHost conecta la lambda con una llamada real a navigate, manteniendo la lógica de navegación en un solo lugar.

composable("home") {
    HomeScreen(onOpenDetails = {
        navController.navigate("details")
    })
}

Integrarlo todo

La pantalla de inicio navega a los detalles; la pantalla de detalles vuelve mediante la flecha Atrás.

composable("home") {
    HomeScreen(onOpenDetails = { navController.navigate("details") })
}
composable("details") {
    DetailsScreen(onBack = { navController.popBackStack() })
}

Comprobación rápida

¿Qué llamada devuelve al usuario a la pantalla anterior mediante programación?

Resumen

Navegación:

  • navigate("route") agrega un destino.
  • popBackStack() / navigateUp() permiten volver.
  • Use launchSingleTop y popUpTo { inclusive } para controlar la pila.
  • Pase lambdas, no el controlador, para mantener las pantallas reutilizables.

Preguntas frecuentes

¿La lección «Navegar entre pantallas» es gratis?

Sí — el texto completo de «Navegar entre pantallas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Navegar entre pantallas»?

Avance y retroceda entre destinos Practicas Android Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Android Academy?

No se requiere experiencia previa. Android Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Navegar entre pantallas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Android Academy?

Sí. Cada lección de Android Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Configurar NavHost
  2. Navegar entre pantallas
  3. Pasar argumentos
  4. Navegación inferior
← Volver a Android Academy