0

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

这是我的代码片段:

动画/旋转.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);
}

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

4

1 回答 1

0

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

getSherlockActivity().setSupportProgressBarIndeterminateVisibility(true);
于 2013-06-05T10:24:11.253 回答