Fixing issue 3272864
-requestLayout() was being called within onLayout in
CellLayout. This resulted in some funky behaviour and the
bug above.
Change-Id: I76b8fa3c1dc7f08c462d13e2e9dde0d7a74386c0
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index fd1f048..2ddebe7 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -949,7 +949,15 @@
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);
+ }
+ });
}
}
}