Merge "Ensure views are attached prior to starting enter transition." into lmp-mr1-dev
This commit is contained in:
@@ -133,16 +133,17 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mAreViewsReady = true;
|
mAreViewsReady = true;
|
||||||
|
final ViewGroup decor = getDecor();
|
||||||
// Ensure the views have been laid out before capturing the views -- we need the epicenter.
|
// 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);
|
viewsReady(sharedElements);
|
||||||
} else {
|
} else {
|
||||||
final View sharedElement = sharedElements.valueAt(0);
|
decor.getViewTreeObserver()
|
||||||
sharedElement.getViewTreeObserver()
|
|
||||||
.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
|
.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreDraw() {
|
public boolean onPreDraw() {
|
||||||
sharedElement.getViewTreeObserver().removeOnPreDrawListener(this);
|
decor.getViewTreeObserver().removeOnPreDrawListener(this);
|
||||||
viewsReady(sharedElements);
|
viewsReady(sharedElements);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user