From c42d5e330a8bfb83be37cb5dec479e7a9b631f60 Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Fri, 7 Jan 2011 19:17:51 -0800 Subject: [PATCH] Fixing issue 3272864 -requestLayout() was being called within onLayout in CellLayout. This resulted in some funky behaviour and the bug above. Change-Id: I76b8fa3c1dc7f08c462d13e2e9dde0d7a74386c0 --- src/com/android/launcher2/CellLayout.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java index fd1f0487b8..2ddebe77fb 100644 --- a/src/com/android/launcher2/CellLayout.java +++ b/src/com/android/launcher2/CellLayout.java @@ -949,7 +949,15 @@ public class CellLayout extends ViewGroup implements Dimmable { if (lp.animateDrop) { lp.animateDrop = false; - ((Workspace) mParent).animateViewIntoPosition(child); + + // This call needs to be posted since it results in a requestLayout() + // which shouldn't be called from within a layout pass (can cause a bad + // state of the tree). + post(new Runnable() { + public void run() { + ((Workspace) mParent).animateViewIntoPosition(child); + } + }); } } }