ViewModel no conserva los valores después de rotar el fragmento – Cazimir Roman

¿Ha intentado implementar el patrón de arquitectura MVVM en Android con Kotlin, solo para probar la rotación de la pantalla y concluir que se restablecen los valores que deberían haberse almacenado en el ViewModel?

Eche un vistazo al ViewModel anterior, que se usa en el fragmento llamado MainFragment:

Ejemplo ViewModel con selectedPosition = 0

los selectedPosition la variable es 0 por defecto y debe contener la posición del widget de IU seleccionado actualmente.

ViewModel se actualiza en algún momento para cambiar el valor de selectedPosition a 2.

Digamos inflar un fragmento con la herramienta FragmentManager en MainActivity.kt en onCreate ():

El código anterior funciona y cada vez onCreate () se llama una nueva instancia de fragmento. El único problema es que si esperamos un nuevo valor para selectedPosition aparecer en nuestro fragmento, no lo veremos, porque de acuerdo con nuestro código anterior, una instancia de la nueva instancia del fragmento y el correspondiente ViewModel también tendrá un valor predeterminado para selectedPosition = 0.

Cuando se vuelva a crear la actividad, intente verificar si hay un paquete almacenado en ella SavedInstanceState y si no, infle el fragmento deseado. De esta manera, solo se inflará una instancia del fragmento.

¡Feliz programación!

Antes de ir … Si este artículo le resultó útil, haga clic en el botón ❤️ o 👏 a continuación o comparta el artículo en Facebook para que sus amigos puedan beneficiarse de él.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *