DialogFragment(一)——简介

前言

以前经常用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的创建。