В чем разница между Dialog и Fragment

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

Ответ

Dialog — это всплывающее окно, которое блокирует взаимодействие с основным интерфейсом до закрытия. Оно обычно используется для коротких взаимодействий (алерты, подтверждения).

Fragment — это независимый компонент UI с собственным жизненным циклом, который можно встраивать в Activity. Он может быть частью навигации, сохранять состояние и использоваться для сложных интерфейсов.

Пример Dialog:

AlertDialog.Builder(context)  
    .setTitle("Title")  
    .setMessage("Message")  
    .setPositiveButton("OK") { _, _ -> }  
    .show()  

Пример Fragment:

class MyFragment : Fragment() {  
    override fun onCreateView(...): View? {  
        return inflater.inflate(R.layout.fragment_layout, container, false)  
    }  
}  

Ключевые отличия:

  • Dialog блокирует UI, Fragment — нет.
  • Fragment имеет сложный жизненный цикл, Dialog — упрощенный.
  • Fragment можно переиспользовать в разных контекстах.