Ответ
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 можно переиспользовать в разных контекстах.