A getParentFragment()
from my nested fragment is returning a null
. I realise that getting a null
means that the fragment is attached to the activity and not to the nested container fragment. But I am explicitly nesting the child fragment inside the parent fragment using the child FragmentManager
and thus think that I should not be getting a null
. Could you tell me what I am missing?
Parent fragment
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();
}
...
}
Child fragment
public class Filter extends Fragment {
...
public Filter() {
if (getParentFragment() == null)
Log.d(LOG_TAG, "parent fragment is null");
}
...
}
I was calling
getParentFragment()
in the constructor of the child fragment and thus before the child fragment was fully created. ShiftinggetParentFragment()
toonCreateView()
solved the problem. Shifting wasn't an issue as I was callinggetParentFragment()
to check if the parent fragment had implemented a child fragment interaction listener.