【问题标题】:Android: is there a way to listen to fragment's enter/exit animations inside the fragment itself?Android:有没有办法在片段本身内收听片段的进入/退出动画?
【发布时间】:2017-11-05 07:02:25
【问题描述】:

我有一个活动和两个实现主从流的片段。

当细节片段进入时,动画会从右向左滑入。 该片段还包含一个 FloatingActionMenu (https://github.com/Clans/FloatingActionButton)。现在我想在细节片段的进入和退出动画之后为这个工厂制作动画。

到目前为止,我所做的是: 在 onCreate() 片段中隐藏工厂 在 onStart() 中添加了一个 postDelay() 以显示带有动画的工厂(我知道这不好)

所以我想知道是否有一种方法可以将侦听器附加到正在执行片段进入和退出过渡动画的动画师,以便我可以相应地为工厂制作动画

【问题讨论】:

    标签: android android-fragments android-animation


    【解决方案1】:

    覆盖public Animator onCreateAnimator(int transit, boolean enter, int nextAnim) 方法。它在片段加载动画时调用

    int transit - 转换类型,参见this

    boolean enter - 如果动画是 enterAnimation 则为真

    int nextAnim - 动画的资源ID

    例如:

    @Override
    public Animator onCreateAnimator(int transit, boolean enter, int nextAnim) {
        Animator animator = AnimatorInflater.loadAnimator(getActivity(), nextAnim);
        if (nextAnim == R.animator.your_animator){
            animator.addListener(new Animator.AnimatorListener() {
                @Override
                public void onAnimationStart(Animator animation) {
    
                }
    
                @Override
                public void onAnimationEnd(Animator animation) {
    
                }
    
                @Override
                public void onAnimationCancel(Animator animation) {
    
                }
    
                @Override
                public void onAnimationRepeat(Animator animation) {
    
                }
            });
        }
        return animator;
    }
    

    【讨论】:

    • 感谢帮助,除了我使用的是 v4 片段并且方法是 public Animation onCreateAnimation(int transit, boolean enter, int nextAnim)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多