Может ли быть Fragment без UI

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

Ответ

Да, фрагмент может существовать без UI. Такие фрагменты называются headless-фрагментами. Они используются для выполнения фоновых задач, хранения данных или управления состоянием, сохраняя их при повороте экрана.

Пример:

class HeadlessFragment : Fragment() {
    private var data: String? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        retainInstance = true // Сохраняем фрагмент при изменении конфигурации
    }

    fun fetchData() {
        // Логика загрузки данных
    }
}

Особенности:

  • Не переопределяют onCreateView()
  • Добавляются через FragmentManager без контейнера
  • Полезны для долгоживущих операций
  • Сохраняют состояние при повороте через retainInstance = true