【问题标题】:Advantage of using a DialogFragment over simple AlertDialog?与简单的 AlertDialog 相比,使用 DialogFragment 的优势?
【发布时间】:2013-02-10 22:29:11
【问题描述】:

我已经阅读了几个 stackoverflow.com 的答案,但仍然看不到使用 DialogFragment 相对于简单的 AlertDialog 的优势。显然,我有两种策略:

a) 使用 AlertDialog.Builder 来配置 AlertDialog,.create() 它,然后在我的 Activity(在某些按钮处理程序中)中 .show() 它,或者

b) 子类 DialogFragment,在 onCreateDialog() 中编写相同的 AlertDialog 构建代码(除了我只返回 .create(),然后在我的 Activity 中实例化一个 DialogFragment,并显示它。

输出看起来相同。

无论哪种方式,我都使用已弃用的代码——我将 .show() 与 AlertDialog 或 DialogFragment 一起使用。当我使用其他尺寸的设备时有优势吗?或者有什么意义...

感谢您的任何见解,

迈克尔

【问题讨论】:

    标签: android android-dialogfragment


    【解决方案1】:

    DialogFragment 为您处理许多生命周期管理案例,包括配置更改(例如屏幕旋转)和如果您的应用进程在后台被终止并且用户稍后返回它时的状态恢复。如果您不使用 DialogFragment,则需要以其他方式处理此类情况。

    【讨论】:

    • 谢谢!我希望 Google 在他们的文档中也说过类似的话。
    【解决方案2】:

    除了@adamp 所说的之外,由于DialogFragment 正在获取自己的生命周期回调,因此它将负责其生命周期,因此您的活动将不负责告诉它该做什么。

    例如当活动结束时,你的活动应该告诉对话框dimiss(),否则你会在logcat中看到leaked the window错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-16
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      • 2017-12-31
      • 1970-01-01
      • 2012-11-25
      • 2010-12-26
      相关资源
      最近更新 更多