26

我到处搜索并阅读了谷歌的官方文档。但我仍然看不出它们之间的区别。

什么时候应该使用 ProgressBar,什么时候应该使用 ProgressDialog?

4

5 回答 5

38

ProgressBar

ProgressDialog

ProgressBar一个ViewProgressDialog是一个Dialog

于 2013-01-15T13:55:43.467 回答
31

虽然这里的答案提供了丰富的信息,但没有一个真正解决了这个问题。

  • 当您想阻止用户在等待时与应用程序交互时,请使用 ProgressDialog。Dialog 方面冻结用户做任何事情,直到它被解雇。请注意 ProgressDialog 背后的 UI 是如何变灰且无法访问的。

进度对话框示例

  • 使用 ProgressBar 来指示您的应用程序中的某些内容仍在等待(加载、思考等),而用户仍可能与其他部分进行交互。在这张图片中,用户仍然可以在等待 GPS 响应的同时填写表格。

进度条示例

(感谢Johnny S提供 ProgressDialog 的图片。)

于 2015-02-10T16:28:08.980 回答
24

ProgressBar 是一个 View(如 TextView、ImageView、Button 等),可以在您的布局中使用它来显示一些进度。

ProgressDialog 是一个带有“内置”ProgressBar 的对话框。对话框可用于让用户在计算某些内容时等待。ProgressDialog 可以更轻松地在对话框中显示计算进度。

于 2013-01-15T13:51:00.847 回答
4

除了其余答案中指出的差异之外,您还应该考虑Dialogs @ Android Developer的以下建议:

避免 ProgressDialog

Android 包含另一个名为的对话框类ProgressDialog,它显示带有进度条的对话框。但是,如果您需要指示正在加载或不确定的进度,则应遵循Progress & ActivityProgressBar的设计指南并在布局中使用 a 。

考虑以下答案也可能有用:

于 2013-08-31T23:49:43.820 回答
1

当您的迭代是可数的(在循环中执行操作,执行代码 x 次等)使用 ProgressBar,如果任务不可数状态(如调用 Web 服务)使用 ProgressDialog

来自安卓文档

ProgressBar : 某些操作的进度可视化指示器。向用户显示一个条形图,表示操作进行了多远;应用程序可以在向前移动时更改进度量(修改条的长度)。还有一个可显示在进度条上的辅助进度,这对于显示中间进度很有用,例如流式播放进度条期间的缓冲区级别。

ProgressDialog:显示进度指示器和可选文本消息或视图的对话框。只能同时使用文本消息或视图。

于 2013-01-15T13:51:48.103 回答