如何在ActionBarSherlock中按下"刷新"按钮时显示"不确定进度"栏?

Gau*_*wal 12 android actionbarsherlock

如何显示Indeterminate ProgressBar何时Refresh按下按钮并在ActionBarSherlock刷新ViewGroup时再次显示刷新按钮?

更新1: 我在这里有一个不完整的答案.我正在提出一个问题的赏金,以便更多的开发人员可以帮助建立一个对将来有用的好答案.

我们如何显示Indeterminate ProgressBar如下图所示的图片在此输入图像描述

小智 31

似乎ActionBarSherlock没有提供动画刷新MenuItem的特定方法.

你可以做什么(通过使用经典的android API)是使用该setActionView(int resId)方法并给出一个带有ProgressBar的布局的id.

在刷新操作开始时,只需调用:

item.setActionView(R.layout.refresh_menuitem);
Run Code Online (Sandbox Code Playgroud)

当您的刷新操作完成后,请致电:

item.setActionView(null);
Run Code Online (Sandbox Code Playgroud)

以下是您的布局文件refresh_menuitem.xml可以具有的示例:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:addStatesFromChildren="true"
              android:focusable="true"
              android:paddingLeft="4dp"
              android:paddingRight="4dp"
              android:gravity="center"
              style="?attr/actionButtonStyle">
    <ProgressBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:focusable="true"
            style="@android:style/Widget.ProgressBar.Small"/>
</LinearLayout> 
Run Code Online (Sandbox Code Playgroud)

  • 好吧,当我尝试使用上面的代码时,`ProgressBar`出现在`ActionBar`的左侧,列表导航微调器变得不可见.你对如何把这个`ProgressBar`和`MenuItem`放在同一个地方有什么想法吗? (3认同)

小智 10

下面是你如何用一个ActionBarSherlock对象添加这种不确定的ProgressBar :(实际上它更容易另一个但是progressBar是单独显示而不是在a上面MenuItem)

1 - 在setContentView()调用之前将此行放在onCreate()方法中:

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

- >此行指定您将使用不确定的ProgressBar函数.

2 - 通过调用以下方式启用不确定的ProgressBar:

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

3 - 通过调用以下命令禁用不确定的ProgressBar:

setSupportProgressBarIndeterminateVisibility(false);
Run Code Online (Sandbox Code Playgroud)

备注:查看ActionBarSherlock文件夹的示例文件夹.我在以下文件中找到了此代码: JakeWharton-ActionBarSherlock-9598f2b\samples\demos\src\com\actionbarsherlock\sample\demos\IndeterminateProgress.java