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

automerge: 7bce500

* commit '7bce5007d2b2b218d11514a3df8e7109e37d9e7c':
  Ensure views are attached prior to starting enter transition.
This commit is contained in:
George Mount
2014-10-31 21:38:13 +00:00
committed by android-build-merger

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;
}