studio - fragment example android
getParentFragment devuelve nulo (4)
Tengo un Fragment
que tiene un FrameLayout
. Este primer fragmento (A) carga dentro de su Framelayout otro fragmento (B). Cuando llamo a getParentFragment
desde el fragmento interno (B), obtengo null
. ¿Cómo debe usarse este método de forma adecuada?
En mi caso, aunque mi fragmento A estaba anidado en el fragmento B, pero sigo recibiendo nulo después de llamar a getParentFragment en FragmentA. Finalmente encontré que debería usar getChildFragmentManager en lugar de getFragmentManager en FragmentB.
compruebe esto ¿Cuál es la diferencia entre getSupportFragmentManager () y getChildFragmentManager ()?
Enfrenté el mismo problema y solucioné los problemas alojando el segundo fragmento en tu fragmento principal con getChildFragmentManager()
entonces no obtendrás el valor nulo ...
Fragmento principal
SignUpFragment signUpFragment = new SignUpFragment();
getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.contentPanel, signUpFragment)
.addToBackStack(null).commit();
Fragmento de niño: lo que he usado es un diálogo
HospitalCardDialog hospitalCardDialog = new HospitalCardDialog();
hospitalCardDialog.show(getChildFragmentManager(), "");
Lo único que ayudó fue que, al crear el adaptador, use getChildFragmentManager()
.
Si no está usando el adaptador, simplemente use getChildFragmentManager()
cuando realice transacciones.
No se recomienda setTargetFragment()
, ya que da errores en moveState()
de fragmento (porque los fragmentos deben estar vinculados a FragmentManager)
getParentFragment () se introdujo en el nivel 17 de API (Android 4.2). Android 4.2 introdujo la idea de fragmentos anidados (fragmentos que contienen otros fragmentos). Llamar a esto da como resultado nulo si el fragmento tiene un padre que es una Actividad.
Echa un vistazo a this .
Si está utilizando la biblioteca de soporte, entonces puede usar getParent (), puede ser que necesite usar getChildFragmentManager () mientras realiza la transacción de fragmento. Mira this