Junior
¿Qué formas de navegación en Android conoces?
sobes.tech AI
Respuesta de la IA
En Android, existen varias formas principales de navegación:
- Arriba (Volver un nivel): Generalmente implementado con un botón de flecha en la ActionBar/Toolbar. Devuelve al usuario a la pantalla anterior en la jerarquía lógica de la aplicación.
- Atrás (Volver): Implementado con el botón del sistema "Atrás". Devuelve al usuario a la pantalla anterior que visitó.
- Inicio (Inicio): Regresar a la pantalla principal de la aplicación o del dispositivo.
- Enlaces profundos (Deep Links): Acceso directo a una pantalla o recurso específico dentro de la aplicación mediante un enlace. Pueden ser creados desde fuentes externas (web, otras aplicaciones) o dentro de la misma aplicación.
- Cajón de navegación (Navigation Drawer): Panel lateral deslizante que contiene enlaces a diferentes secciones de la aplicación.
- Barra de navegación inferior (Bottom Navigation Bar): Panel en la parte inferior de la pantalla que permite cambiar rápidamente entre las secciones principales de la aplicación.
Enfoques principales para implementar la navegación:
- Uso de
startActivityForResultyonActivityResult: Método obsoleto para pasar datos entre actividades. - Pasar datos mediante Extras en Intent: Forma sencilla de transferir datos primitivos y objetos serializables/parceables entre actividades.
FragmentTransaction: Gestión de fragmentos (agregar, reemplazar, eliminar, etc.) para la navegación dentro de una actividad.- Componente de Navegación (Navigation Component): Biblioteca oficial de Google que simplifica la implementación de la navegación entre diferentes componentes de la aplicación (Actividad, Fragmento, Vistas personalizadas). Ofrece un editor gráfico de gráficos de navegación, transferencia de argumentos y gestión de la pila de retroceso.
// Ejemplo de navegación con Navigation Component
findNavController().navigate(R.id.action_currentFragment_to_nextFragment)
// Transferencia de argumentos con Navigation Component
val bundle = Bundle()
bundle.putString("key", "value")
findNavController().navigate(R.id.action_currentFragment_to_nextFragment, bundle)