diff options
| author | Philip Milne <pmilne@google.com> | 2011-10-25 15:07:19 -0700 |
|---|---|---|
| committer | Philip Milne <pmilne@google.com> | 2011-10-25 15:07:19 -0700 |
| commit | ecab1178648670f2c72b47faf250040fcded3d13 (patch) | |
| tree | 83f8b74a794881699fefd9f520ab8c9901d06e7b /core/java/android/widget/GridLayout.java | |
| parent | 5ccfcb033bab724d1195cb26d9e5a577d47b4d92 (diff) | |
Update to fix for bug 5393156
Tweak to the logic to take account of margins when gravity = FILL is used and
there is a measurement dependency between the axes (as in mulit-line text).
Change-Id: I91b9143c2d5db41cb67dd641d5c7ea0b56cae7ff
Diffstat (limited to 'core/java/android/widget/GridLayout.java')
| -rw-r--r-- | core/java/android/widget/GridLayout.java | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/core/java/android/widget/GridLayout.java b/core/java/android/widget/GridLayout.java index fb9047b35b28..7cf51688db66 100644 --- a/core/java/android/widget/GridLayout.java +++ b/core/java/android/widget/GridLayout.java @@ -867,16 +867,18 @@ public class GridLayout extends ViewGroup { if (firstPass) { measureChildWithMargins2(c, widthSpec, heightSpec, lp.width, lp.height); } else { - Spec spec = (orientation == HORIZONTAL) ? lp.columnSpec : lp.rowSpec; + boolean horizontal = (orientation == HORIZONTAL); + Spec spec = horizontal ? lp.columnSpec : lp.rowSpec; if (spec.alignment == FILL) { Interval span = spec.span; - Axis axis = (orientation == HORIZONTAL) ? horizontalAxis : verticalAxis; + Axis axis = horizontal ? horizontalAxis : verticalAxis; int[] locations = axis.getLocations(); - int size = locations[span.max] - locations[span.min]; - if (orientation == HORIZONTAL) { - measureChildWithMargins2(c, widthSpec, heightSpec, size, lp.height); + int cellSize = locations[span.max] - locations[span.min]; + int viewSize = cellSize - getTotalMargin(c, horizontal); + if (horizontal) { + measureChildWithMargins2(c, widthSpec, heightSpec, viewSize, lp.height); } else { - measureChildWithMargins2(c, widthSpec, heightSpec, lp.width, size); + measureChildWithMargins2(c, widthSpec, heightSpec, lp.width, viewSize); } } } |
