Подтвердить что ты не робот

Android: родительский фрагмент вложенного фрагмента

A getParentFragment() из моего вложенного фрагмента возвращает null. Я понимаю, что получение null означает, что фрагмент привязан к активности, а не к вложенному фрагменту контейнера. Но я явно вложен дочерний фрагмент внутри родительского фрагмента, используя дочерний элемент FragmentManager, и поэтому думаю, что я не должен получать null. Не могли бы вы рассказать мне, что мне не хватает?

Родительский фрагмент

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();
    }

...

}

Детский фрагмент

public class Filter extends Fragment {

...


    public Filter() {
        if (getParentFragment() == null)
            Log.d(LOG_TAG, "parent fragment is null");
    }

...

}
4b9b3361

Ответ 1

Я вызывал getParentFragment() в конструкторе дочернего фрагмента и, таким образом, до того, как дочерний фрагмент был полностью создан. Сдвиг getParentFragment() до onCreateView() решил проблему. Сдвиг не был проблемой, поскольку я вызывал getParentFragment(), чтобы проверить, был ли родительский фрагмент реализован прослушиватель взаимодействия с дочерним фрагментом.