为什么我要使用带有AlertDialog的DialogFragment?

时间:2013-12-05 15:01:57

标签: android android-alertdialog android-dialogfragment

DialogFragment#onCreateDialog的javadoc说了以下内容:

  

这通常用于显示AlertDialog而不是通用   对话;这样做onCreateView(LayoutInflater, ViewGroup, Bundle)因为AlertDialog需要而不需要实现   关心自己的内容。

当我创建自己的onCreateView而不是调用AlertDialog时,似乎甚至没有调用super.onCreateDialog。在这种情况下DialogFragment的价值是多少?

1 个答案:

答案 0 :(得分:0)

以下是文档的说法:

  

Dialog类是对话框的基类,但您应该避免使用   直接实例化Dialog。而是使用以下之一   子类:

     

AlertDialog一个可以显示标题的对话框,最多三个按钮,a   可选项目列表或自定义布局。 DatePickerDialog或   TimePickerDialog具有允许用户的预定义UI的对话框   选择日期或时间。避免使用ProgressDialog

     

这些类定义对话框的样式和结构,但是你   应该使用DialogFragment作为对话框的容器。该   DialogFragment类提供了创建自己所需的所有控件   对话框并管理其外观,而不是调用方法   对话框对象。

     

使用DialogFragment管理对话框可确保正确显示   处理生命周期事件,例如当用户按下“返回”按钮时   或旋转屏幕。 DialogFragment类也允许你   将对话框的UI重用为更大的UI中的可嵌入组件   像传统的片段一样(例如当你想要对话框UI时)   在大屏幕和小屏幕上显示不同。)

我从中获得的是DialogFragment仍然对生命周期事件负责,并允许基础Dialog更多可重用性,允许它在Fragment内。