在ActionBar上放置progressBar

Mat*_*ska 52 android actionbarsherlock android-actionbar

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

<item
    android:id="@+id/menu_progress"
    android:actionLayout="@layout/action_progress"
    android:menuCategory="container"
    android:showAsAction="always">
</item>
Run Code Online (Sandbox Code Playgroud)

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

Kuf*_*ffs 166

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

你需要打电话

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)
Run Code Online (Sandbox Code Playgroud)

onCreate() 设置活动布局之前:

例如

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

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

然后打电话

setProgressBarIndeterminateVisibility(true);
Run Code Online (Sandbox Code Playgroud)

在您想要显示进度微调器的活动中.

  • 对于那些试图从Fragment中工作的人,从包含Activity的`OnCreate()`调用`requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);`然后调用`getActivity().setSupportProgressBarIndeterminateVisibility(true);`来自你的Fragment . (42认同)
  • 为了纠正上面的注释,`requestWindowFeature(Window ...`应该更改为`supportRequestWindowFeature(Window ...`让它工作.好吧,这个技巧至少为我修复了它. (4认同)
  • 更新了答案以反映`ActionBarActivity`支持. (2认同)