52

我正在尝试在 actionBar 上放置一个不确定的 ProgressBar。例如,我正在使用 actionView 来放置进度条,例如 Google+ 应用程序。

<item
    android:id="@+id/menu_progress"
    android:actionLayout="@layout/action_progress"
    android:menuCategory="container"
    android:showAsAction="always">
</item>

问题是进度条被视为一个项目,因此在 Nexus S 纵向模式下,我在操作栏上只有一个其他项目,而在 Google+ 上,我可以看到两个项目加上进度条。如何使用 android 操作栏放置进度条?

4

3 回答 3

166

注意:支持库中现已弃用以下功能。

你需要打电话

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)

在您onCreate() 设置活动的布局之前

例如

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

如果您使用的是支持库,请将requestWindowFeature替换为supportRequestWindowFeature

然后打电话

setProgressBarIndeterminateVisibility(true);

每当您想显示进度微调器时,在您的 Activity 上。

于 2012-02-06T09:18:23.273 回答
0

我的情况需要使用 Android 支持库版本 4 从 Fragment 更新进度条。

按照 Jokeefe 的建议,在我的“MainActivity 扩展 ActionBarActivity”中:

supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

setContentView(R.layout.activity_main);

在我的片段长期运行的任务中:

预执行

actionBarActivity.setSupportProgressBarIndeterminateVisibility(true);

后执行

actionBarActivity.setSupportProgressBarIndeterminateVisibility(false);
menu.clear();
actionBarActivity = (ActionBarActivity)getActivity();
actionBarActivity.supportInvalidateOptionsMenu();

不确定这是否回答了 OP,但根据上面的帖子,这对我有用。希望这可以帮助。

于 2015-02-23T20:37:41.803 回答
-1

我找到了一个最简单的方法,可以准确地显示您需要的进度。我在这里找到了 。只需使用一个类并将进度条放置在您想要的任何位置。

于 2017-10-02T03:14:36.987 回答