summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Alan Viverette <alanv@google.com> 2014-10-17 13:34:50 -0700
committer Alan Viverette <alanv@google.com> 2014-10-17 13:34:50 -0700
commit177ec4608e919b309ec98ba8272cc1a16d1277e3 (patch)
tree9dd5fab15a8b4c822969d0ab8a331dffcf82e340
parent12c84b5d9f30f3d31ab18fee719f3a1bf00ab957 (diff)
Only request layout when removeView() actually removes a view
BUG: 18035456 Change-Id: Iec82be63ef9fc4d0ff90d93f8f3a65328a5e1eba
-rw-r--r--core/java/android/view/ViewGroup.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index 7538dffa59f6..134171a350aa 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -4078,9 +4078,10 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
* {@link #dispatchDraw(android.graphics.Canvas)} or any related method.</p>
*/
public void removeView(View view) {
- removeViewInternal(view);
- requestLayout();
- invalidate(true);
+ if (removeViewInternal(view)) {
+ requestLayout();
+ invalidate(true);
+ }
}
/**
@@ -4143,11 +4144,13 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
invalidate(true);
}
- private void removeViewInternal(View view) {
+ private boolean removeViewInternal(View view) {
final int index = indexOfChild(view);
if (index >= 0) {
removeViewInternal(index, view);
+ return true;
}
+ return false;
}
private void removeViewInternal(int index, View view) {