В чем разница между Progressbar и progressDialog?

Я искал везде и читал официальный документ Google. Но я до сих пор не вижу разницы между ними.

Когда нам следует использовать ProgressBar, а когда - ProgressDialog?


person Mathieu    schedule 15.01.2013    source источник


Ответы (5)


ProgressBar - это View (например, TextView, ImageView, Button и т. Д.), Который можно использовать в вашем макете, чтобы показать некоторый прогресс.

ProgressDialog - это диалог со «встроенным» ProgressBar. Диалоги можно использовать, чтобы заставить пользователя ждать, пока что-то вычисляется. ProgressDialog упрощает отображение прогресса ваших вычислений в диалоге.

person Berťák    schedule 15.01.2013

ProgressBar:

ProgressDialog:

ProgressBar - это View, ProgressDialog - это Dialog.

person Ahmad    schedule 15.01.2013

Хотя ответы здесь информативны, никто на самом деле не отвечает на этот вопрос.

  • Используйте ProgressDialog, если вы хотите запретить пользователю взаимодействовать с приложением во время ожидания. Аспект «Диалог» не позволяет пользователю делать что-либо до тех пор, пока он не будет отклонен. Обратите внимание на то, что пользовательский интерфейс ProgressDialog неактивен и недоступен.

Пример ProgressDialog

  • Используйте ProgressBar, чтобы указать, что что-то в вашем приложении все еще ожидает (загружается, думает и т. Д.), В то время как пользователь все еще может взаимодействовать с другими частями. На этом изображении пользователь все еще может заполнять формы, ожидая ответа от GPS.

Пример ProgressBar

(Спасибо Johnny S за изображение ProgressDialog.)

person SMBiggs    schedule 10.02.2015
comment
также для pDialog вы не можете использовать стрелку назад, чтобы отклонить его, в то время как вы можете использовать его с pBar - person monim; 01.12.2015

В дополнение к различиям, указанным в остальных ответах, вы должны принять во внимание следующую рекомендацию от Dialogs @ Android Developer:

Избегайте ProgressDialog

Android включает еще один класс диалогового окна, называемый ProgressDialog, который показывает диалоговое окно с индикатором выполнения. Однако, если вам нужно указать загрузку или неопределенный прогресс, вам следует вместо этого следовать рекомендациям по дизайну для Прогресс и активность и использовать ProgressBar в макете.

Также может быть полезно рассмотреть следующие ответы:

person leo9r    schedule 31.08.2013

Когда ваши итерации являются счетными (выполнение операций в цикле, выполнение кода x раз и т. Д.), Используйте ProgressBar, если задача не является счетным статусом (например, вызов веб-службы), используйте ProgressDialog

Из документации Android

ProgressBar: визуальный индикатор выполнения некоторой операции. Отображает полосу для пользователя, показывающую, насколько продвинулась операция; приложение может изменять степень прогресса (изменяя длину полосы) по мере продвижения вперед. Также имеется вторичный прогресс, отображаемый на индикаторе выполнения, который полезен для отображения промежуточного прогресса, такого как уровень буфера во время индикатора выполнения потокового воспроизведения.

ProgressDialog: диалоговое окно с индикатором выполнения и дополнительным текстовым сообщением или представлением. Одновременно можно использовать только текстовое сообщение или представление.

person hkutluay    schedule 15.01.2013