4

我想在所有 android 设备上的 ActionBar 中显示/隐藏 ProgressBar。我正在使用 android 支持库(android-support-v7-appcompat)。

我的活动扩展ActionBarActivity并在onCreate其中请求窗口功能supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);(在设置内容之前)。

在我的按钮上单击我显示/隐藏 ProgressBar。

public void onClick(View v) {
    if(v.getId() == R.id.buttonProgress) {

        if(progress) {
            setProgressBarIndeterminateVisibility(false);
            progress = false;
        } else {
            setProgressBarIndeterminateVisibility(true);
            progress = true;
        }

    }
}

这段代码在高于 11 的 android API 上运行良好。但我有低于 11 的 API 的程序。ProgressBar 没有出现。LogCat 中没有错误。

我注意到当我在其中显示 ProgressBar 时,onCreate它可以工作。我也可以隐藏它onCreate

你有解决这个问题的方法吗?

谢谢!

4

3 回答 3

3

称呼

setSupportProgressBarIndeterminateVisibility(true)

如果从片段调用它来转换活动,例如:

ActionBarActivity ac =(ActionBarActivity) getActivity();
ac.setSupportProgressBarIndeterminateVisibility(true);
于 2013-12-20T14:01:22.160 回答
0

低于 API 11 的应用程序没有操作栏。如果您将 ProgressBar 用于低于 API 11 (Honeycomb) 的应用程序,它确实会显示,但它会在标题栏的右上角旋转一个小圆圈(顶部的细条应用程序)。嗯,这取决于主题。

如果您想要一个操作栏,您可能需要查看一个外部库:ActionBarSherlock

于 2013-09-30T14:34:59.420 回答
0

ActionBar API 最初是在 Android 3.0(API 级别 11)中添加的,但它们也可以在支持库中使用,以便与 Android 2.1(API 级别 7)及更高版本兼容。

并且在支持库中添加了 ActionBar,以允许将操作栏用户界面设计模式实现回 Android 2.1(API 级别 7)及更高版本。使用此类需要您通过扩展新的 ActionBarActivity 类来实现您的活动。

在这里查看官方文档

但是,您可以通过使用 ActionBarSherlock 库来实现这一点。

看看这个

ABS 网站在这里您可以获取示例程序 ABS 库

于 2013-09-30T14:36:38.707 回答