Где используется Target Fragment?

TargetFragment используется примерно для того же что и startActivityForResult(), но между фрагментами. Таргет фрагмент это фрагмент который вызывает другой фрагмент чтобы получить из него какой-либо результат ()

Чтобы использовать его для того, чтобы получить результат выполнения какого-либо фрагмента необходимо проделать выполнить следующие шаги

  1. В вызванном фрагменте указать target фрагмент методом setTargetFragment()

Данный метод принимает в себя сам фрагмент (инстанс) и requestCode. Чтобы получить инстанст родительского фрагмента можно использовать findFragmentByTag()

  1. В вызывающем фрагменте необходимо переопределить метод onActivityResult()
  2. Вызвать в конце выполения вызванного фрагмента targetFragment.onActivityResult(), чтобы передать данные из дочернего фрагмента в родительский.

Стоит понимать что данным методом можно не просто передавать данные из одного фрагмента в другой. Это довольно гибкий способ.

Target Fragment объявлен deprecated начиная с API Level 28, так что сейчас лучше его не использовать. В качестве альтернатив можно выделить связку библиотек Navigation Component (официальная библиотека от Google) и Navigation Result (создана энтузиастом)

Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *