Merge "Cancel animation when target changes." into lmp-mr1-dev

This commit is contained in:
George Mount
2014-11-05 23:04:17 +00:00
committed by Android (Google) Code Review

View File

@@ -885,7 +885,8 @@ public final class ObjectAnimator extends ValueAnimator {
} }
/** /**
* Sets the target object whose property will be animated by this animation * Sets the target object whose property will be animated by this animation. If the
* animator has been started, it will be canceled.
* *
* @param target The object being animated * @param target The object being animated
*/ */
@@ -893,6 +894,9 @@ public final class ObjectAnimator extends ValueAnimator {
public void setTarget(@Nullable Object target) { public void setTarget(@Nullable Object target) {
final Object oldTarget = getTarget(); final Object oldTarget = getTarget();
if (oldTarget != target) { if (oldTarget != target) {
if (isStarted()) {
cancel();
}
mTarget = target == null ? null : new WeakReference<Object>(target); mTarget = target == null ? null : new WeakReference<Object>(target);
// New target should cause re-initialization prior to starting // New target should cause re-initialization prior to starting
mInitialized = false; mInitialized = false;