如何避免在Android中使用ProgressDialog

7

Dialogs @ Android Developer建议避免使用ProgressDialog来指示加载进度,而是将活动指示器放在布局中。

Progress & Activity @ Android Developer讨论了活动指示器,但没有提到使用的类名称。我搜索Android类时没有找到名称为ActivityBar、ActivityCircle或ActivityIndicator的类。

我在哪里可以找到有关Android支持在布局中包含活动指示器以避免使用ProgressDialog的文档(教程、示例或API文档)?

更新:full.stack.ex给了我正确的答案。

首先,在调用setContentView()之前,在Activity的onCreate()方法中包含以下代码:

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

接下来,在加载之前(例如启动AsyncTaskLoader之前),使用此调用使旋转器出现:

setProgressBarIndeterminateVisibility(true);

最后,在加载完成后,再次隐藏旋转图标:
MainActivity.this.setProgressBarIndeterminateVisibility(false);

太棒了!不需要ProgressDialog。在模拟器上让旋转图标可见似乎会显著减慢加载速度(需要数分钟而不是数秒),但在我的实际手机上没有这个问题。我不确定是否有任何方法可以减少旋转图标使用的CPU周期。


1
此外,根据您的设计偏好,这可能有助于或不利于Activity.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)。 - full.stack.ex
你想将其转换为答案吗? - Canuck
3个回答

5

1

是的,但我正在寻找我包含的链接中提到的内置支持。我也可以将ProgressBar添加到我的布局中,但来自full.stack.ex的评论指引我朝更简单的方向前进。 - Canuck

1

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