summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/view/View.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 66381f90da0e..179a9287786d 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -807,6 +807,12 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
private static boolean sAlwaysRemeasureExactly = false;
/**
+ * Relax constraints around whether setLayoutParams() must be called after
+ * modifying the layout params.
+ */
+ private static boolean sLayoutParamsAlwaysChanged = false;
+
+ /**
* This view does not want keystrokes. Use with TAKES_FOCUS_MASK when
* calling setFlags.
*/
@@ -3975,6 +3981,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
// modes, so we always need to run an additional EXACTLY pass.
sAlwaysRemeasureExactly = targetSdkVersion <= M;
+ // Prior to N, layout params could change without requiring a
+ // subsequent call to setLayoutParams() and they would usually
+ // work. Partial layout breaks this assumption.
+ sLayoutParamsAlwaysChanged = targetSdkVersion <= M;
+
sCompatibilityDone = true;
}
}
@@ -16904,6 +16915,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
* @return true if this view's LayoutParams changed since last layout.
*/
public final boolean didLayoutParamsChange() {
+ if (sLayoutParamsAlwaysChanged) {
+ return true;
+ }
return (mPrivateFlags3 & PFLAG3_LAYOUT_PARAMS_CHANGED) == PFLAG3_LAYOUT_PARAMS_CHANGED;
}