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

Связь между фрагментами применяется к вложенным фрагментам?

На сайте разработчиков Android есть отличная статья о том, как использовать интерфейсы для связи между:

  • A Fragment и его хостинг Activity
  • Два Fragment, размещенные тем же Activity

Я пытаюсь применить это понятие к вложенным фрагментам. В частности, getActivity() или Fragment#onAttach(Activity) сообщают вам, что Activity размещает Fragment.

Что эквивалентно в случае вложенных фрагментов? Как "ребенок" Fragment знает, что "родительский" Fragment он включен? И, не зная этого, как ребенок Fragment передает события до своего родителя Fragment?

Очевидным способом является передача намерений из дочернего Fragment и родительский Fragment прослушивать широковещательную передачу, но я бы предпочел использовать подход interface.

4b9b3361

Ответ 1

Оказывается, существует метод getParentFragment(), предназначенный для обработки вложенных фрагментов. Он доступен на android.app.Fragment из API 17, но может использоваться в более старых версиях с помощью android.support.v4.app.Fragment.

Не могу поверить, что я пропустил этот API!

EDIT:

Я столкнулся с этим gist, который делает этот процесс определения родительского компонента (будь то Fragment или Activity) простым, элегантным и безопасным!