El componente de navegación en Jetpack Compose lo ayuda a navegar por los componibles y aprovechar la funcionalidad que proporciona.
dependencies {
def nav_compose_version = "1.0.0-alpha02"
implementation "androidx.navigation:navigation-compose:$nav_compose_version"
}
NavController
los NavController
realiza un seguimiento de la pila de elementos componibles y el estado de cada uno. También tiene estado, lo que significa que puede cambiar o cambiar el estado directamente.
Necesitamos crearlo en el lugar donde se especifica la jerarquía componible para que todos los componibles que necesitan hacer referencia a él puedan acceder a él.
Para crear un NavController podemos usar rememberNavController()
:
@Composable
fun ToDometerApp() {
val navController = rememberNavController()
...
NavHost
los NavController
cresated debe estar asociado con un archivo NavHost
modular. Dentro de NavHost
especifique los componentes a los que debería poder navegar. Para construir la carta de navegación dentro del archivo NavHost
podemos utilizar la navegación Kotlin DSL. Utilizando la composable
Especificamos la ruta de destino y la componible relativa al destino.
Navegar
Para navegar a un destino, usamos navigate()
método que toma un parámetro String que representa la ruta de destino.
navController.navigate("addProject")
Para volver al modular anterior simplemente llamamos navigateUp()
.
Pasando argumentos entre destinos
También podemos pasar datos entre destinos definiendo marcadores de posición en la ruta componible, de la misma manera que especificamos marcadores de posición de ruta en una URL.
composable("route/{navArg}")
Podemos especificar el tipo de argumento pasando el NavType
para type
parámetro en navArgument
función, porque por defecto todos los argumentos se analizan como cadenas.
navController.navigate("taskDetail/1")