アクション バーのシャーロックで更新アニメーションを表示しようとしています。アニメーションは正常に機能し (更新アイコンを回転させます)、想定どおりの動作をします。唯一の問題は、十分なスペースがあるにもかかわらず、ボタンのテキスト/ラベルが消えることです。アニメーションが停止するとすぐに戻ります。
ここに私のコードスニペットがあります:
アニメ/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);
}
私を夢中にさせているので、ここの誰かがこの問題の解決策を持っていることを願っています.