????在android項目當中,當需要實現(xiàn)彈出框或者浮層功能時,我們往往可以使用Dialog、AlertDialog、PopupWindow、DialogFragment。
? ? 谷歌推薦使用DialogFragment來實現(xiàn)對話框,而不是直接使用Dialog。
好處:
? ? ? ? 1)使用起來方便,更容易進行模塊封裝
? ? ? ? 2)能很好的處理屏幕翻轉(zhuǎn)情況。我們知道,Android要求所有的activity在銷毀前要關(guān)閉其頁面里的Dialog。不然會報Android....Leak.....Window信息,想想,如果在activity上彈出彈窗后屏幕發(fā)生旋轉(zhuǎn),導致activity重建,這時候普通的Dialog并沒有關(guān)閉,就會導致問題的發(fā)生。而使用DialogFragment,他集成自fragment,當activity重建時,基于DiologFragment的對話框會由FragmentManager自動重建。
使用:
有兩種創(chuàng)建DialogFragment的方式:
? ? 1)重寫onCreateDialog。一般用于創(chuàng)建傳統(tǒng)的對話框。UI簡單,功能單一。
? ? 2)重寫onCreateView。一般用于創(chuàng)建復雜的彈窗或全屏效果展示的彈窗。UI、功能復雜些,一般有網(wǎng)絡請求等異步操作。