summaryrefslogtreecommitdiff
path: root/core/java/android/widget/GridLayout.java
diff options
context:
space:
mode:
authorPhilip Milne <pmilne@google.com>2011-10-25 15:07:19 -0700
committerPhilip Milne <pmilne@google.com>2011-10-25 15:07:19 -0700
commitecab1178648670f2c72b47faf250040fcded3d13 (patch)
tree83f8b74a794881699fefd9f520ab8c9901d06e7b /core/java/android/widget/GridLayout.java
parent5ccfcb033bab724d1195cb26d9e5a577d47b4d92 (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.java14
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);
}
}
}