Merge "Do a forceLayout if pending insets is changed after relayout window" into nyc-dev

This commit is contained in:
Chong Zhang
2016-06-17 18:22:29 +00:00
committed by Android (Google) Code Review

View File

@ -1814,6 +1814,19 @@ public final class ViewRootImpl implements ViewParent,
+ mAttachInfo.mVisibleInsets);
}
// If any of the insets changed, do a forceLayout on the view so that the
// measure cache is cleared. We might have a pending MSG_RESIZED_REPORT
// that is supposed to take care of it, but since pending insets are
// already modified here, it won't detect the frame change after this.
final boolean framesChanged = overscanInsetsChanged
|| contentInsetsChanged
|| stableInsetsChanged
|| visibleInsetsChanged
|| outsetsChanged;
if (mAdded && mView != null && framesChanged) {
forceLayout(mView);
}
if (!hadSurface) {
if (mSurface.isValid()) {
// If we are creating a new surface, then we need to