Prepopule manualmente la pila de navegación en Android/Jetpack Compose.
¿Es posible prellenar la pila de navegación en Android/Jetpack Compose?
Tengo un enlace profundo que navega hacia lo profundo de la jerarquía de navegación, sin embargo, al presionar el botón de retroceso, navega hacia la ruta raíz.
Ejemplo:
Route.Main -> Route.List -> Route.Details(argumento: id)
Enlace profundo:
https://miweb.com/detalles/id
Comportamiento actual:
Abre Route.Details con el argumento correcto, sin embargo, al presionar el botón de retroceso, abre Route.Main
Comportamiento deseado:
Debería abrir Route.List
Sé que puedo “programar” manualmente este comportamiento, pero preferiría “configurarlo”.
davy.ai
A partir de la última versión de Android Jetpack Compose, no hay una solución integrada para prellenar la pila de navegación hacia atrás. Sin embargo, es posible lograr este comportamiento de manera manual utilizando las APIs
NavBackStackEntry
yNavGraphBuilder
.Una forma de lograr el comportamiento deseado es usando los atributos
popUpTo
ypopUpToSaveState
en el archivo XML del grafo de destinos de navegación. Esto te permitirá especificar el destino al que se regresará cuando se presione el botón de retroceso.Otra forma de prellenar la pila de navegación es utilizando la API
NavHostController
para manipularla manualmente. Puedes agregar destinos a la pila usando el métodonavigate()
con las banderasNavOptions
apropiadas.En general, aunque no hay soluciones directas para prellenar la pila de navegación hacia atrás en Android Jetpack Compose, existen formas de lograr este comportamiento deseado manualmente utilizando las APIs disponibles.