Android 3.0 引入的基于Fragment的DialogFragment,DialogFragment让dialog也变成了碎片,用于在Activity的内容之上展示一个模态的对话框。
官方推荐使用 DialogFragment 来代替 Dialog ,可以具有更高的可复用性(降低耦合),当旋转屏幕和按下后退键时可以更好的管理其声明周期,和Fragment有着基本一致的声明周期,同时也具有和Fragment一样的优点。
为什么要使用DialogFragment
1、当横竖屏切换时,DialogFragment会自动重建,而AlertDialog没有这样的能力。
如当屏幕方向发生变化,会导致Activity重建,之前显示的AlertDialog对话框就会消失。若要使对话框重建,需手动处理。
在onSaveInstanceState中
在onCreate中
onDestroy()中
若使用DialogFragment来管理对话框,当旋转屏幕的时候,DialogFragment的对话框将会由FragmentManager自动重建
2、DialogFragment更灵活、松耦合性
DialogFragment可以很灵活的当做普通Fragment使用,在onCreateView中很方便的自定义布局
创建DialogFragment两种方式
1、重写 onCreateDialog
一般用于创建替代传统的 Dialog 对话框的场景。
or
or
2、重写 onCreateView
一般用于创建自定义及复杂内容弹窗的场景。
DialogFragment的管理
1、DialogFactory
可建立一个工厂类对项目中大量的Dialog进行管理
2、链式编程
|
|
使用时