【问题标题】:About Android Progress Dialog. Avoid?关于 Android 进度对话框。避免?
【发布时间】:2014-02-04 19:51:44
【问题描述】:

我正在阅读有关 Android 网站中的 Dialogs 的内容,我遇到了一个部分,上面写着“避免 ProgressDialog”。

这里是链接:http://developer.android.com/guide/topics/ui/dialogs.html

这是否意味着他们建议不要使用它?我真的需要一个弹出窗口来显示我的应用在后台工作时的进度。

这是否意味着我必须使用 ProgressBar 类构建自己的进度对话框?顺便说一句,如何构建它?任何帮助表示赞赏。

【问题讨论】:

    标签: android android-fragments android-alertdialog android-dialog android-progressbar


    【解决方案1】:

    编辑: 在 Android O 中,ProgressDialog 现在是 officially deprecated。建议使用另一种方法

    此类在 API 级别 O 中已弃用。 在 Activity 内部使用 ProgressBar 等进度指示器,而不是使用此模式对话框。


    原答案:

    这都是从设计和用户交互的角度,而不是代码的角度。

    UI 指南告诉您避免使用 ProgressDialog 不是因为该类已被弃用(不是在撰写此答案时),而是因为它迫使用户避免与应用程序交互,而仅仅是盯着屏幕。

    以 Google Play 应用为例。当它下载应用程序/更新时,您仍然可以滑动、导航等。您仍然可以在应用程序执行某些操作时参与其中。

    如果您绝对需要用户在进度条完成之前停止交互,请务必这样做。文档只是说您可能能够找到更好的方法(因此链接到Progress & Activity)。

    【讨论】:

    • 我明白你的意思。感谢您的回答!
    • @HongWeiWang 没问题。另外,我看不出建立自己的模仿ProgressDialogDialog 的意义。正如我所说,使用它没有任何问题。
    • 好吧,如果我自定义它,我可以向它自己的弹出窗口添加更多内容。
    • @HongWeiWang 确实如此。但请记住,无论您使用 ProgressBarDialog 还是“克隆”,文档中避免此类对话的警告(这是问题的主题,我已回答)仍然适用。
    • ProgressDialog 在 O 中已弃用。
    【解决方案2】:

    随着 ProgressDialog 在 Android O 中被弃用。您应该创建一个 ProgressBar 并通过设置它的可见性来显示它。我使用来自 https://github.com/Q115/DelayedProgressDialog 的 DelayedProgressDialog,它与 ProgressDialog 的作用相同,并在必要时增加了延迟的好处。

    用法:

    DelayedProgressDialog progressDialog = new DelayedProgressDialog();
    progressDialog.show(getSupportFragmentManager(), "tag");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多