Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在Animator.AnimatorListener中设计onAnimationCancel()的原因是什么?_Android_Animation - Fatal编程技术网

Android 在Animator.AnimatorListener中设计onAnimationCancel()的原因是什么?

Android 在Animator.AnimatorListener中设计onAnimationCancel()的原因是什么?,android,animation,Android,Animation,Android SDK显示: public void cancel() 取消动画。与end()不同,cancel() 使动画在其轨迹中停止,发送 onAnimationCancel(Animator)发送给它的侦听器,后跟 onAnimationEnd(动画师)消息。 仅在动画未取消时调用某些方法。 以下是AOSP桌面时钟的一个示例: rotateAnimatorY.addListener(new AnimatorListenerAdapter() { private boolean m

Android SDK显示:

public void cancel()

取消动画。与
end()
不同,
cancel()
使动画在其轨迹中停止,发送
onAnimationCancel(Animator)
发送给它的侦听器,后跟
onAnimationEnd(动画师)
消息。

仅在动画未取消时调用某些方法。 以下是AOSP桌面时钟的一个示例:

rotateAnimatorY.addListener(new AnimatorListenerAdapter() {
    private boolean mIsCanceled = false;

    @Override
    public void onAnimationCancel(Animator animation) {
        mIsCanceled = true;
    }

    @Override
    public void onAnimationEnd(Animator animation) {
        if (!mIsCanceled) {
            view.setRotation(0);
        }

        view.setLayerType(View.LAYER_TYPE_NONE, null);
    }
});
onAnimationCancel()仅设置一个误判标志,所有工作都在onAnimationEnd()中完成。 结合结束状态和取消状态,在所有情况下最多需要完成3种工作:

a), cancel & end. These work can live in **onAnimationEnd()**    
b), cancel &!end. These live in **onAnimationCancel()**    
c), !cancel & end. These are annoying.
对于c),必须包含一个类似miscenced的标志

我在AOSP应用程序中搜索,但没有发现单独使用onAnimationCancel()方法的任何好处。它们中的大多数只是“不做任何事情”或复制onAnimationEnd()代码

为什么不将取消标志合并到OnAnimationEnd中呢

抽象void onAnimationEnd(Animator动画,已取消布尔值)

IMOP,它更优雅,重量更轻


Animator.AnimatorListener
中设计一个
onAnimationCancel()
的原因是什么?

@Luksprog我建议重新设计我发布的onAnimationEnd()。对不起,我没有很好地阅读这个问题。我的假设是,他们想明确区分这两个事件。