android - studio - fragmenttransaction
Android: Fragmento padre de un fragmento anidado (1)
Un getParentFragment()
de mi fragmento anidado está devolviendo un null
. Me doy cuenta de que obtener un null
significa que el fragmento se adjunta a la actividad y no al fragmento del contenedor anidado. Pero estoy anidando explícitamente el fragmento secundario dentro del fragmento primario utilizando el FragmentManager
secundario y, por lo tanto, creo que no debería obtener un null
. ¿Podrías decirme lo que me falta?
Fragmento padre
public class UsageBreakUp extends Fragment implements Filter.OnFragmentInteractionListener {
....
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getChildFragmentManager().beginTransaction().add(R.id.filter, new Filter()).commit();
}
...
}
Fragmento de niño
public class Filter extends Fragment {
...
public Filter() {
if (getParentFragment() == null)
Log.d(LOG_TAG, "parent fragment is null");
}
...
}
Estaba llamando a getParentFragment()
en el constructor del fragmento hijo y, por lo tanto, antes de que el fragmento hijo se creara por completo. Cambiar getParentFragment()
a onCreateView()
resolvió el problema. El cambio no fue un problema, ya que estaba llamando a getParentFragment()
para verificar si el fragmento principal había implementado un escucha de interacción de fragmentos secundarios.