在ActionBar上放置progressBar

时间:2012-02-06 08:42:19

标签: android android-actionbar actionbarsherlock

我试图在actionBar上放置一个不确定的ProgressBar。我使用actionView将progressBar设置为Google+应用程序,例如。

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

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

3 个答案:

答案 0 :(得分:166)

注:The functionality below is now deprecated in the Support Library.

您需要致电

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)
在设置活动的布局之前,在onCreate()

e.g。

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

如果您使用support library替换 requestWindowFeature supportRequestWindowFeature

然后致电

setProgressBarIndeterminateVisibility(true);
每当你想要显示进度微调器时,在你的Activity上

答案 1 :(得分:0)

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

在我的“MainActivity扩展ActionBarActivity”中,如Jokeefe所建议的那样:

supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

setContentView(R.layout.activity_main);

在我片段的长期任务中:

onPreExecute

actionBarActivity.setSupportProgressBarIndeterminateVisibility(true);

onPostExecute

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

不确定这是否能解决OP问题,但根据上述帖子,这对我有用。希望这会有所帮助。

答案 2 :(得分:-1)

我找到了一个最容易显示你需要的进展的人。 I found it here 。只需使用一个班级,然后将您的进度条放在任何地方。