前言
以前經常用dialog作為彈出框,但是google推薦我們使用新的dialog模式,即DialogFragment,今天就來講講dialogFragment相關知識點
本文涉及知識點:
- dialogFragment 相對 dialog 的優勢
- Fragment生命周期
- DialogFragment生成的兩種方式
一.DialogFragment相對dialog的優勢
大家都知道,dialog在關閉的時候,容易發生內存泄漏,而dialogFragment是和activity的生命周期綁定的,dialogFragment自身對內存做了些處理,它不僅具備dialog功能,還避免了內存的泄露,特別是在手機進行橫豎屏切換的時候。
二.Fragment生命周期
dialogFragment的繼承鏈如下:
AppCompatDialogFragment ------> DialogFragment ------->Fragment
所以DialogFragment 包括其子類AppCompatDialogFragment實質上是一個Fragment,為了方便后文敘述,我們貼一下Fragment 的生命周期
1.png
2.png
DialogFragment也遵循以上生命周期
三.DialogFragment生成的兩種方式
dialogFragment創建的方式有兩種:
1.通過重寫 onCreateDialog(Bundle savedInstanceState) 方法創建默認dialogFragment
2.通過重寫 onCreateView 方法來自定義dialogFragment
需要注意的是這兩個方法不能同時寫,即我在寫默認dialogFragment的時候,就只要重寫onCreateDialog方法而不需要去重寫onCreateView方法。同理,在自定義dialogFragment的時候就只要重寫onCreateView方法就好。
ok,今天就講到這里,下篇文章介紹默認dialogFragment的創建。