DialogFragment#onCreateDialog
的javadoc说了以下内容:
这通常用于显示AlertDialog而不是通用 对话;这样做
onCreateView(LayoutInflater, ViewGroup, Bundle)
因为AlertDialog需要而不需要实现 关心自己的内容。
当我创建自己的onCreateView
而不是调用AlertDialog
时,似乎甚至没有调用super.onCreateDialog
。在这种情况下DialogFragment
的价值是多少?
答案 0 :(得分:0)
以下是文档的说法:
Dialog类是对话框的基类,但您应该避免使用 直接实例化Dialog。而是使用以下之一 子类:
AlertDialog一个可以显示标题的对话框,最多三个按钮,a 可选项目列表或自定义布局。 DatePickerDialog或 TimePickerDialog具有允许用户的预定义UI的对话框 选择日期或时间。避免使用ProgressDialog
这些类定义对话框的样式和结构,但是你 应该使用DialogFragment作为对话框的容器。该 DialogFragment类提供了创建自己所需的所有控件 对话框并管理其外观,而不是调用方法 对话框对象。
使用DialogFragment管理对话框可确保正确显示 处理生命周期事件,例如当用户按下“返回”按钮时 或旋转屏幕。 DialogFragment类也允许你 将对话框的UI重用为更大的UI中的可嵌入组件 像传统的片段一样(例如当你想要对话框UI时) 在大屏幕和小屏幕上显示不同。)
我从中获得的是DialogFragment
仍然对生命周期事件负责,并允许基础Dialog
更多可重用性,允许它在Fragment
内。