Назовите отличия Dialog от DialogFragment

Раньше класс Dialog использовался для отображения всплывающих окон в Android. Сейчас же рекомендуется использовать DialogFragment как новый способ это делать, а класс Dialog сейчас использовать нежелательно (метод showDialog() deprecated). Дело в том, что у DialogFragment есть одно очень важное преимущество перед обычным Dialog и это lifecycle. Так как DialogFragment является фрагментом, то соответственно у него есть жизненный цикл фрагмента. Это позволяет без проблем использовать его при configuration changes, в отличии от Dialog. Dialog зачастую являются причинами крашей приложений при изменениях конфигурации, так как их поведении при них не очевидно и довольно сложно. Так же у DialogFragment можно настроить layout и вызывать его для получения какого либо результата. В целом DialogFragment можно использовать двумя различными способами, как обычный Dialog (у класса DialogFragment внутри есть поле для Dialog), либо же как всплывающий фрагмент (внутри реализуется абсолютно так же, как и обычный фрагмент, но выглядит как фрагмент во всплывающем окне).

Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *