在不冻结UI的情况下显示对话框

时间:2012-11-02 22:42:25

标签: java android user-interface dialog progress

我当前的进度对话框冻结了用户界面,我的意思是,在对话框显示时我无法使用该应用,我无法移动或点击任何按钮。是否可以在没有任何焦点的情况下显示对话框?(所以我可以点击当前活动中的按钮)。

1 个答案:

答案 0 :(得分:1)

与任何对话一样,ProgressDialog始终会从您当前的活动中窃取焦点。如果要在当前布局中嵌入进度条,请使用ProgressBar,在开始长时间运行操作时使用setVisible(true),使用setProgress更新进度条(或使用不确定模式如果你不知道任务需要多长时间。)

进度条的样式主要通过它们的样式完成,选择其中一种内置类型的进度条:

  • 默认样式(即未指定样式):旋转轮
  • Widget.ProgressBar.Horizontal - 单杠
  • Widget.ProgressBar.Small - 较小的纺车
  • Widget.ProgressBar.Large - 更大的纺车
  • Widget.ProgressBar.Inverse - 浅色背景上的旋转轮
  • Widget.ProgressBar.Small.Inverse - 浅色背景上的小轮子
  • Widget.ProgressBar.Large.Inverse - 浅色背景上的较大旋转轮

您可以通过将style属性添加到ProgressBar xml中来应用这些:

 <ProgressBar
     style="@android:style/Widget.ProgressBar.Horizontal"
     ... />

如果是您需要的自定义着色,则可以使用已发布的here解决方案,该解决方案使用setColorFilter