android动作栏sherlock。动画时图标的标签/文本消失

时间:2013-06-05 09:58:33

标签: android actionbarsherlock android-animation rotateanimation

我正在尝试在我的操作栏sherlock中显示刷新动画。 动画效果很好(旋转刷新图标)并完成它应该做的事情。唯一的问题是,虽然有足够的空间,但按钮的文本/标签会消失。一旦动画停止,它就会返回。

这是我的代码片段:

动画/ rotate.xml

<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="360"
    android:toDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="1500"
    android:interpolator="@android:anim/linear_interpolator" /> 

菜单项xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >   
  <item
    android:id="@+id/menu_refresh"
    android:icon="@drawable/ic_action_refresh"
    android:orderInCategory="0"
    android:showAsAction="withText|ifRoom"
    android:title="@string/menu_refresh"/>

</menu>

布局/ refresh_action.xml

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:src="@drawable/ic_action_refresh"
          android:showAsAction="withText|ifRoom"
          android:title="@string/menu_refresh"
          style="@style/Widget.Sherlock.ActionButton" /> 

和我片段中的java代码

private Animation rotation;
private static ImageView syncView;
private static MenuItem syncItem;

private void refreshAnimation() {
    /* Attach a rotating ImageView to the refresh item as an ActionView */
     LayoutInflater lI = (LayoutInflater) getActivity()
             .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     refreshView = (ImageView) lI.inflate(R.layout
             .refresh_rotate_action, null);
     rotation =  AnimationUtils.loadAnimation(getActivity(), 
             R.anim.refresh_rotate);
     rotation.setAnimationListener(rotateListener);
     refreshView.startAnimation(rotation);
     refreshItem.setActionView(syncView);
}

我希望这里有人能解决这个问题,因为它让我发疯。

1 个答案:

答案 0 :(得分:0)

操作栏内置了旋转加载视图。它看起来很不错。请参阅以下内容:

getSherlockActivity().setSupportProgressBarIndeterminateVisibility(true);