Acceso `Perspective` dentro de `Actividad` en el ámbito de la navegación gráfico

Dentro de Activity se puede obtener un ViewModel en el ámbito de que Activity como este:

val viewModel = ViewModelProviders.of(this)[ViewModel::class.java]
//or
val viewModel by viewModels<ViewModel>()

De manera similar, en un Fragment se puede obtener un ViewModel por

//scoped to parent Activity
val viewModel: ViewModel by activityViewModels()

//scoped to parent Fragment
val viewModel: ViewModel by viewModels({ requireParentFragment() })

//scoped to navigation graph
val viewModel: ViewModel by navGraphViewModels(R.id.login_graph)

Ahora si intento acceder a ViewModel dentro de Activity, que es el ámbito de una navegación gráfica a continuación, no hay ningún método auxiliar, así que tengo que hacer

val viewModel by lazy {
    ViewModelProvider(findNavController(R.id.nav_host_fragment)
            .getViewModelStoreOwner(R.id.your_graph).viewModelStore,
            ViewModelProvider.AndroidViewModelFactory.getInstance(application)
    ).get(ViewModel::class.java)
}

Hay un método auxiliar que me he perdido? ¿Tengo que acceder a él a través de la navegación gráfico alcance? Puedo usar Activity alcance para acceder a la misma ViewModel?

0
2019-09-19 09:52:32
fuente
0 respuestas

Vea otras preguntas sobre etiquetas