Можно ли создать Fragment программно

«Можно ли создать Fragment программно» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, можно создать Fragment программно. Для этого нужно:

  1. Создать экземпляр фрагмента через конструктор:
val myFragment = MyFragment()
  1. Добавить его в активити/фрагмент через FragmentManager:
supportFragmentManager.beginTransaction()
    .add(R.id.container, myFragment, "TAG")
    .commit()

Ключевые моменты:

  • У фрагмента должен быть пустой публичный конструктор (система восстанавливает его через reflection)
  • Можно передавать аргументы через Bundle с помощью setArguments()
  • Для замены/удаления используйте соответствующие методы FragmentTransaction
  • Не забывайте про жизненный цикл и сохранение состояния

Пример с аргументами:

val fragment = MyFragment().apply {
    arguments = bundleOf("key" to "value")
}