我可以使用`DialogFragment`来实现简单的是/否对话而不是`AlertDialog`吗?什么是adavntages?

时间:2017-06-29 10:48:42

标签: android android-fragments dialog android-dialogfragment

根据Android开发者的文档,

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

但我在Alert Dialog也得到了同样的行为......也就是说,即使我旋转屏幕或按下后退按钮,对Alert Dialog也没有影响。

那我为什么要使用Dialog Fragment代替Alert Dialog

2 个答案:

答案 0 :(得分:0)

DialogFragment是一个专门的Fragment形状的对话框,而AlertDialog是一个专门的Dialog。 片段可以在运行时绑定到Activity,因此例如对对话框使用DialogFragment将允许您在多个活动上重复使用相同的对话框,而不必让每个活动分别处理所有代码。 我绝对建议在AlertDialog上使用DialogFragment。

答案 1 :(得分:0)

如果要在方向更改后保留对话框,请使用对话框片段。使用DialogFragment的优点是将为您处理对话框的所有生命周期。

如果您尚未在清单中添加android:configChanges="keyboardHidden|orientation",那么您的活动将在方向更改时重新创建,并且您的提醒对话框将不会在方向更改后重新实例化。避免此问题的最佳方法是使用DialogFragment。但是,如果您忽略方向更改而不是通过在清单中添加上述行来重新创建活动,那么您将不会遇到此问题。