DialogFragment与带有对话框主题的Activity之间的区别

4

我知道在Android中,Dialog-fragment和带有Dialog主题的Activity都可以用于创建对话框。我也知道它们都可以在屏幕方向改变时保持存在。

我的问题是:我是否总是可以使用带有Dialog主题的Activity来创建所有对话框?是否有任何情况下我必须使用DialogFragment而不是带有Dialog主题的Activity?

谢谢!

1个回答

3

如果您使用带有对话框主题的Activity,则可以使用ActionBar。您无法在Dialog中使用ActionBar。Android不提供在Dialog标题中添加菜单/操作的方法。您必须自己实现。

Dialog类似于Activity的子视图,因此如果您使用Dialog,则无需处理方向的改变。Activity和Dialog之间的通信类似于View和Sub-view之间的通信。但是,在Activity和带有对话框主题的Activity之间的通信方面则不是这样。

选择Dialog或带有对话框主题的Activity取决于对话框的性质/复杂性。


说对话框不需要处理方向变化是荒谬的。原始对话框在方向变化后会消失,这就是为什么建议使用DialogFragment,如果该对话框有任何状态,则还需要保存状态。 - ssynhtn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接