我可以为Fragment翻译添加AnimationListener吗?

Kin*_* Wu 4 animation android android-animation android-fragments

我为片段翻译应用了一些动画.我可以添加动画侦听器来检测动画开始/结束事件吗?

谢谢大家.

Dev*_*red 13

如果您在自定义片段内部覆盖onCreateAnimation()(或者onCreateAnimator()如果您使用3.0+片段...都允许侦听器),则可以提供动画而不是使用以下自定义动画方法FragmentTransaction:

@Override
public Animation onCreateAnimation (int transit, boolean enter, int nextAnim) {
    Animation anim;
    if (enter) {
        anim = AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_in);
    } else {
        anim = AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_out);
    }

    anim.setAnimationListener(new AnimationListener() {
        public void onAnimationEnd(Animation animation) { }

        public void onAnimationRepeat(Animation animation) { }

        public void onAnimationStart(Animation animation) { }
    });

    return anim;
}
Run Code Online (Sandbox Code Playgroud)

  • 通过这个解决方案,我可以为当前要打开的片段提供动画.但我也希望将退出动画提供给当前打开的片段.我将如何实现它?像FragmentTransaction.setCustomAnimations(int enter,int exit,int popEnter,int popExit). (2认同)