am fa21e757: Merge "Ensure views are attached prior to starting enter transition." into lmp-mr1-dev

* commit 'fa21e75734878a9718f85c7d3f28c5946f15d01d':
  Ensure views are attached prior to starting enter transition.
This commit is contained in:
George Mount
2014-10-31 21:35:30 +00:00
committed by Android Git Automerger

View File

@@ -133,16 +133,17 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
return;
}
mAreViewsReady = true;
final ViewGroup decor = getDecor();
// Ensure the views have been laid out before capturing the views -- we need the epicenter.
if (sharedElements.isEmpty() || !sharedElements.valueAt(0).isLayoutRequested()) {
if (decor == null || (decor.isAttachedToWindow() &&
(sharedElements.isEmpty() || !sharedElements.valueAt(0).isLayoutRequested()))) {
viewsReady(sharedElements);
} else {
final View sharedElement = sharedElements.valueAt(0);
sharedElement.getViewTreeObserver()
decor.getViewTreeObserver()
.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
sharedElement.getViewTreeObserver().removeOnPreDrawListener(this);
decor.getViewTreeObserver().removeOnPreDrawListener(this);
viewsReady(sharedElements);
return true;
}