Solución:
Aquí hay un enfoque no oficial de navegación en Jetpack Compose. Pruébelo hasta que reciba una palabra oficial de los desarrolladores de Android de Google.
componer-enrutador
https://github.com/zsoltk/compose-router
Se ha publicado una nueva biblioteca de Jetpack para la navegación de Compose. Todavía está en alfa.
En esta nueva biblioteca, ahora el usuario puede navegar entre diferentes componibles con características de componentes de navegación.
Utilizando navegación-componer:
dependencies {
def nav_compose_version = "1.0.0-alpha01"
implementation "androidx.navigation:navigation-compose:$nav_compose_version"
}
Ejemplo:
Paso 1: crear un NavController
usando el rememberNavController()
método en su componible: Enlace:
val navController = rememberNavController()
Paso 2: Creando el NavHost
requiere el NavController
creado previamente a través de rememberNavController()
y la ruta del destino inicial de su gráfico: Enlace.
NavHost(navController, startDestination = "profile") {
composable("profile") { Profile(...) }
composable("friendslist") { FriendsList(...) }
...
}
Paso 3: Para navegar a un uso componible navigate()
:
fun Profile(navController: NavController) {
...
Button(onClick = { navController.navigate("friends") }) {
Text(text = "Navigate next")
}
...
}
ver más https://developer.android.com/jetpack/compose/navigation
Parece que se están alejando de XML.
Las nuevas muestras oficiales publicadas después del lanzamiento de 1.0.0-alpha tienen un código compartido para administrar el backstack y la navegación. Este código aún no forma parte de la biblioteca.
https://github.com/android/compose-samples/blob/master/Owl/app/src/main/java/com/example/owl/ui/utils/Navigation.kt https://github.com/android /compose-samples/blob/master/Jetsnack/app/src/main/java/com/example/jetsnack/ui/utils/Navigation.kt