diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/view/View.java | 14 |
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; } |
