Usa el viewmodel para un fragment llamado “twice”.
Tengo una navegación como sigue:
FragmentList -> FragmentDetailA -> FragmentDetailB -> FragmentDetailC
Utilizo un viewModel para el detalle FragmentDetailViewModel
private val detailViewModel: DetailViewModel by activityViewModels()
Pero si avanzo y luego retrocedo, los fragmentos FragmentDetails anteriores cambian. ¿Cómo asignar un viewModel al fragmento sin cambiar los demás?
Solución:
Primero, cambia activityViewModels() por viewModels()
Luego, el problema estaba con setFragmentResultListener. Se llamaba antes de instanciar el nuevo fragmento, por lo que la llamada se realizaba en Fragment A y no en Fragment B. Decidí pasar datos entre destinos con objetos Bundle.
Muchas gracias.
davy.ai
Para asignar un viewModel a un fragmento específico sin cambiar los demás, puedes seguir los siguientes pasos:
Siguiendo estos pasos, podrás asignar un viewModel a un fragmento específico sin afectar a los demás y pasar datos entre los fragmentos utilizando objetos Bundle.