Obtener FragmentManager dentro de AndroidViewModel

AndroidViewModel se utiliza para acceder al context de la Application . Intento acceder al FragmentManager Activity sin pasarlo explícitamente:

 class FooViewModel(app: Application) : AndroidViewModel(app) { private val fm = (app.applicationContext as Activity).fragmentManager .. } 

Obteniendo error, no se puede convertir Context a Activity .


Pregunta : ¿hay alguna forma de get FragmentManager dentro de AndroidViewModel sin pasarlo explícitamente?

Creo que la respuesta breve será "no, no hay forma" , porque el context de la Application no tiene conocimiento de FragmentManager .

FragmentManager es un object que pueden tener las subclasss de FragmentActivity . Application no es una subclass de FragmentActivity .

Otra pregunta sería, ¿por qué necesitarías una instancia de FragmentManager dentro de tu ViewModel ? Lo más probable es que deba delegar cosas relacionadas con la vista para manejar a otra unidad que no sea ViewModel (por ejemplo, Activity , Fragment ). Tenga en count que este ViewModel se mantendrá sobre el cambio de configuration, por lo tanto, si mantiene una reference al FragmentManager dentro de su ViewModel , estaría filtrando su instancia de Activity .

  • ¿Es posible anotar el constructor de class en Kotlin?
  • Traducir de Java a Kotlin OnClickListener
  • ¿Cuál es la diferencia entre properties y parameters en Kotlin?
  • Kotlin Date.daysDespués de la function diferente valor de retorno con los mismos arguments
  • Errores de ejemplo de inicio de Ktor
  • ¿Cómo podría probar que un método no está siendo invocado para un object no simulado?
  • GL_INVALID_OPERATION en glBufferData () en kotlin
  • ¿Cómo puedo build una consulta SQL con un nombre de columna dynamic en la biblioteca persistente de la sala?
  • Método de llamada en class genérica a través de la reflexión
  • Cómo ejecutar Kotlin Koans en IntelliJ? ¿Cuál es la "class principal"?
  • Kotlin getter setter sin campo