我正在尝试在我的操作栏 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);
}
我希望这里有人能解决这个问题,因为它让我发疯。