diff options
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 928fe93d7e56..6e93a3031de5 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -3159,6 +3159,17 @@ public final class ViewRootImpl implements ViewParent, return (theParent instanceof ViewGroup) && isViewDescendantOf((View) theParent, parent); } + private static void forceLayout(View view) { + view.forceLayout(); + if (view instanceof ViewGroup) { + ViewGroup group = (ViewGroup) view; + final int count = group.getChildCount(); + for (int i = 0; i < count; i++) { + forceLayout(group.getChildAt(i)); + } + } + } + private final static int MSG_INVALIDATE = 1; private final static int MSG_INVALIDATE_RECT = 2; private final static int MSG_DIE = 3; @@ -3297,6 +3308,10 @@ public final class ViewRootImpl implements ViewParent, mReportNextDraw = true; } + if (mView != null) { + forceLayout(mView); + } + requestLayout(); } break; @@ -3311,6 +3326,9 @@ public final class ViewRootImpl implements ViewParent, mWinFrame.top = t; mWinFrame.bottom = t + h; + if (mView != null) { + forceLayout(mView); + } requestLayout(); } break; |