DialogFragment(一)——简介
2017-12-13 本文已影响402人
奔跑的佩恩
前言
以前经常用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的创建。