Comments 8
Спасибо за статью.
Но вот что интересно - используется ли вообще где-то ещё подход с использование "чистого"supportFragmentManager, чтобы данный подход применять? Мне кажется везде либо какие-то либы-фреймворки-обёртки, либо
jetpack navigation либо вовсе новомодный compose.
Выглядит красиво и удобно. Но как быть с передачей аргументов во фрагменты, если они были получены после создания Activity (например, через интернет запроса)?
Тут могу предложить, либо передавать в add фабрику фрагмента, либо комбинировать два способа и передать аргумент, который узнается после создания фрагмента, через способ с бандл. Возможно, если это не подходит, отказаться от использования неудобного апи. Мне лично приходилось два раза использовать FragmentFactory и оба раза аргументы были известны при создании активити.
Классический вариант с arguments мне известен. И он работает на 100%.
Фабрики, что добавил Google для Fragments, во факту такую задачу решить не могут, так как в большинстве случаев передаваемые аргументы не известны, в момент создания фрагмента (при условии, что вы используете Single Activity). Если у вас каждый Fragment имеет свою Activity и вы в Activity передаете эти самые аргументы, то такой способ подходит отлично.
Судя по всем, FragmentFactory больше нужен для того, чтобы вы могли передать зависимости во фрагмент. И тогда получается, что вы можете отдать процесс создания фрагмента на откуп DI.
Но для передачи именно аргументов этот механизм уже не подходит и нужно по старинке передавать аргументы через аргументы (масло масляное получилось).
Упрощаем создание FragmentFactory при помощи dsl котлина