Conserva ViewModels con el scope del fragment mientras gira la pantalla
Estamos utilizando support libs v 25.+
y los nuevos componentes de architecture v 1.0.0-alpha3
y reconocemos que los ViewModels que tienen el scope de Fragment no se conservan correctamente:
class MyFragment : LifecycleFragment() { protected lateinit var viewModel: MyViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) viewModel = ViewModelProviders.of(this).get(MyViewModel::class.java) } }
El viewModel básicamente se recrea cada vez que la aplicación gira. Esto se puede resolver cambiando a onActivityCreated
como se usa en los ejemplos de google. Dado que la documentation señala que use onCreate
, espero que este sea un fragment o ViewModelProvider
error de ViewModelProvider
.
- ¿Se puede convertir un campo en una versión no nula de sí mismo?
- Java permite acceder a la variable base de Kotlin a través de su hijo, pero no a Kotlin, ¿por qué?
- Moshi + Kotlin + SealedClass
- ¿Por qué no puedo poner el {de una class anónima en una nueva línea en Kotlin?
- Android ViewModelProviderFactory en kotlin
- No se puede usar string.contains () en la expresión de kotlin `when`
- ¿Es bueno que Kotlin permita la extensión de los types existentes?
- Pase la interfaz como parámetro en Kotlin
- Kotlin, cómo probar (int) array
- Extensiones de Kotlin para Android, los packages no se pueden importar
- Kotlin KDoc: ¿Documentación?
- @DataJpaTest y @Async El método CRUDRepository no funciona en set
- Cómo acceder a los miembros de la class con el mismo nombre en la function de extensión en Android Kotlin
Después de consultar con el equipo de Android, descubrimos que, de hecho, es un problema dentro del SupportFragmentManager
que se resuelve en v 26.+
así que SupportFragmentManager
a
26.0.0-beta2
ayudado y ahora ViewModels se conservan en onCreate
como se esperaba.
- Lista de sorting basada en el order de otra list
- Cómo alterar las properties del object de testing en KotlinTest a través de interceptTestCase