From 016f4457574c33b4c9c8a74189c77e1fbe411a3e Mon Sep 17 00:00:00 2001 From: Chet Haase Date: Mon, 7 Dec 2015 12:58:06 -0800 Subject: Fix requestLayout() optimizations A bug in recent layout optimizations was causing the framework to avoid laying out containers with WRAP_CONTENT in one axis or the other. This fix updates the logic in the code that finds dependent layout axes to correctly account for this case. Issue #25980198 requestLayout() sometimes doesn't result in measure/layout for view Change-Id: Ie5f678beef5d8c4ba25291ffdcd59797d4697acc --- core/java/android/view/ViewGroup.java | 2 +- core/java/android/widget/LinearLayout.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index 11df9a3826b7..488063b31ea0 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -5631,7 +5631,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager final int matchAxisFilter = ((lp.width == MATCH_PARENT ? FLAG_LAYOUT_AXIS_HORIZONTAL : 0) | (lp.height == MATCH_PARENT ? FLAG_LAYOUT_AXIS_VERTICAL : 0)) & axisFilter; - if (matchAxisFilter != 0) { + if (matchAxisFilter != 0 || wrapAxisFilter != 0) { final ViewParent parent = getParent(); if (parent != null) { // If our parent depends on us for an axis, then our layout can also be affected diff --git a/core/java/android/widget/LinearLayout.java b/core/java/android/widget/LinearLayout.java index ba868a15ef1e..bdb1e83438c5 100644 --- a/core/java/android/widget/LinearLayout.java +++ b/core/java/android/widget/LinearLayout.java @@ -683,7 +683,7 @@ public class LinearLayout extends ViewGroup { } } - if (matchAxisFilter != 0) { + if (matchAxisFilter != 0 || wrapAxisFilter != 0) { final ViewParent parent = getParent(); if (parent != null) { // If our parent depends on us for an axis, then our layout can also be affected -- cgit v1.2.3-59-g8ed1b