From 05b75b9ebfa3ce6d67b2a3aee446ff0cd515311b Mon Sep 17 00:00:00 2001 From: David Vacca Date: Mon, 23 Apr 2018 11:13:07 -0700 Subject: [PATCH] Revert D7612904: [react-native][PR] Fix view indices with Android LayoutAnimation Differential Revision: D7612904 Original commit changeset: a04cf47ab80e fbshipit-source-id: fd22a1243f770aab486f6c6d09726547c92841c0 --- .../react/uimanager/NativeViewHierarchyManager.java | 13 +++++-------- .../facebook/react/uimanager/ViewGroupManager.java | 8 -------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java index 2b72a0a3333088..a57205b861ebe2 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java @@ -373,13 +373,12 @@ public synchronized void manageChildren( if (mLayoutAnimationEnabled && mLayoutAnimator.shouldAnimateLayout(viewToRemove) && arrayContains(tagsToDelete, viewToRemove.getId())) { - // Display the view in the parent after removal for the duration of the layout animation, - // but pretend that it doesn't exist when calling other ViewGroup methods. - viewManager.startViewTransition(viewToManage, viewToRemove); + // The view will be removed and dropped by the 'delete' layout animation + // instead, so do nothing + } else { + viewManager.removeViewAt(viewToManage, indexToRemove); } - viewManager.removeViewAt(viewToManage, indexToRemove); - lastIndexToRemove = indexToRemove; } } @@ -424,9 +423,7 @@ public synchronized void manageChildren( mLayoutAnimator.deleteView(viewToDestroy, new LayoutAnimationListener() { @Override public void onAnimationEnd() { - // Already removed from the ViewGroup, we can just end the transition here to - // release the child. - viewManager.endViewTransition(viewToManage, viewToDestroy); + viewManager.removeView(viewToManage, viewToDestroy); dropView(viewToDestroy); } }); diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.java index c4d5eed429dde7..017fb5764e7237 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.java @@ -93,14 +93,6 @@ public void removeAllViews(T parent) { } } - public void startViewTransition(T parent, View view) { - parent.startViewTransition(view); - } - - public void endViewTransition(T parent, View view) { - parent.endViewTransition(view); - } - /** * Returns whether this View type needs to handle laying out its own children instead of * deferring to the standard css-layout algorithm.