0

アクション バーのシャーロックで更新アニメーションを表示しようとしています。アニメーションは正常に機能し (更新アイコンを回転させます)、想定どおりの動作をします。唯一の問題は、十分なスペースがあるにもかかわらず、ボタンのテキスト/ラベルが消えることです。アニメーションが停止するとすぐに戻ります。

ここに私のコードスニペットがあります:

アニメ/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);
}

私を夢中にさせているので、ここの誰かがこの問題の解決策を持っていることを願っています.

4

1 に答える 1