Merge "Fix ChangeClipBounds to set final clip to null." into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8a4ff5edb5
@@ -16,6 +16,7 @@
|
|||||||
package android.transition;
|
package android.transition;
|
||||||
|
|
||||||
import android.animation.Animator;
|
import android.animation.Animator;
|
||||||
|
import android.animation.AnimatorListenerAdapter;
|
||||||
import android.animation.ObjectAnimator;
|
import android.animation.ObjectAnimator;
|
||||||
import android.animation.RectEvaluator;
|
import android.animation.RectEvaluator;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -84,6 +85,7 @@ public class ChangeClipBounds extends Transition {
|
|||||||
}
|
}
|
||||||
Rect start = (Rect) startValues.values.get(PROPNAME_CLIP);
|
Rect start = (Rect) startValues.values.get(PROPNAME_CLIP);
|
||||||
Rect end = (Rect) endValues.values.get(PROPNAME_CLIP);
|
Rect end = (Rect) endValues.values.get(PROPNAME_CLIP);
|
||||||
|
boolean endIsNull = end == null;
|
||||||
if (start == null && end == null) {
|
if (start == null && end == null) {
|
||||||
return null; // No animation required since there is no clip.
|
return null; // No animation required since there is no clip.
|
||||||
}
|
}
|
||||||
@@ -99,6 +101,17 @@ public class ChangeClipBounds extends Transition {
|
|||||||
|
|
||||||
endValues.view.setClipBounds(start);
|
endValues.view.setClipBounds(start);
|
||||||
RectEvaluator evaluator = new RectEvaluator(new Rect());
|
RectEvaluator evaluator = new RectEvaluator(new Rect());
|
||||||
return ObjectAnimator.ofObject(endValues.view, "clipBounds", evaluator, start, end);
|
ObjectAnimator animator =
|
||||||
|
ObjectAnimator.ofObject(endValues.view, "clipBounds", evaluator, start, end);
|
||||||
|
if (endIsNull) {
|
||||||
|
final View endView = endValues.view;
|
||||||
|
animator.addListener(new AnimatorListenerAdapter() {
|
||||||
|
@Override
|
||||||
|
public void onAnimationEnd(Animator animation) {
|
||||||
|
endView.setClipBounds(null);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return animator;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user