不确定Android活动的进度

时间:2013-01-14 16:41:44

标签: android android-layout

我正在尝试复制在ICS中卸载应用时发现的体验。特别是标题栏下的不确定进度指示器。我尝试在requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)上使用Activity和各种方法,但无济于事。它改为在屏幕/标题栏的右上角显示一个旋转进度条。我错过了一些简单的东西吗?或者这是完全定制的吗?

以下是我正在使用的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    super.onCreate(savedInstanceState);

    setProgressBarIndeterminate(true);
    setProgressBarIndeterminateVisibility(true);
}

Uninstall Screenshot

3 个答案:

答案 0 :(得分:9)

您正在使用ActionBar不确定进度条,但您正在寻找ProgressBar视图。

您可以通过编程方式创建View或将其添加到布局文件中,如 -

<ProgressBar
    android:id="@+id/progressBar1"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:indeterminate="true" />

通常情况下,您可以通过调用.setVisibility(View.VISIBLE)来显示,并在完成后.setVisibility(View.GONE)来决定显示时间。

如果您的最低API为11,并将您的活动或应用主题设置为@android:style/Theme.Holo,那么您的图片中会显示ProgressBar

如果您希望在API 11之前的设备上产生类似的效果,请查看HoloEverywhere

答案 1 :(得分:4)

免责声明:@ iagreen的答案仍然是正确的 - 要获得类似于卸载活动中的布局,您最好的选择就是在布局中使用它,而不是依赖于窗口功能)

但是你在使用Windows功能的正确轨道上,你只是混合了两个。

见,这:

setProgressBarIndeterminate(true);

请求窗口的 [水平]进度条不确定。这个:

setProgressBarIndeterminateVisibility(true);

显示窗口的不确定进度条 - 事情是,这是一个完全不同的视图。

为了进一步说明问题,这会让您在窗口顶部显示水平不确定进度条

requestWindowFeature(Window.FEATURE_PROGRESS);
setProgressBarIndeterminate(true);
setProgressBarVisibility(true);

这会在操作栏中为您提供微调器式进度条

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setProgressBarIndeterminateVisibility(true);

答案 2 :(得分:0)

这是图像中的水平进度条,Action Bar不确定进度条是Spinner样式。您需要为操作栏创建自定义视图,或将其作为主视图中的视图。您可以隐藏操作栏并为特定活动创建自定义标头。只需使用Spinner样式的不确定进度条,这是每个人都希望在Action Bar中看到的内容。