@nmw が彼の回答で実装するアニメーターは、API レベル 11 で追加されたものであり、Android サポート ライブラリによって実装されているフラグメントでは機能しません。
Fragment アニメーション イベントをリッスンするために、サポート ライブラリのFragment
クラスを拡張してオーバーライドonCreateAnimation
し、返された Animation オブジェクトにカスタム AnimationListener をアタッチしました。
public class MyFragment extends android.support.v4.app.Fragment {
private static final String TAG = "MyFragment";
@Override
public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {
Animation anim = AnimationUtils.loadAnimation(getActivity(), nextAnim);
anim.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
Log.d(TAG, "Animation started.");
// additional functionality
}
@Override
public void onAnimationRepeat(Animation animation) {
Log.d(TAG, "Animation repeating.");
// additional functionality
}
@Override
public void onAnimationEnd(Animation animation) {
Log.d(TAG, "Animation ended.");
// additional functionality
}
});
return anim;
}
}