diff options
author | Tor Norbye <tnorbye@google.com> | 2012-06-12 20:42:24 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2012-06-12 20:42:24 -0700 |
commit | c9a4954452ae269b7e886a6a2964db0b64fd02a7 (patch) | |
tree | 891ea3ea8c3628dc83a756f947585a970f03324f /eclipse | |
parent | bd5eefa93e628dec13b2b970a736ef90d06e977b (diff) | |
download | sdk-c9a4954452ae269b7e886a6a2964db0b64fd02a7.zip sdk-c9a4954452ae269b7e886a6a2964db0b64fd02a7.tar.gz sdk-c9a4954452ae269b7e886a6a2964db0b64fd02a7.tar.bz2 |
GridLayout bug fix
Handle baseline alignment better
Change-Id: I331ebd2617612479eb686a456bd6f862f5acd7ea
Diffstat (limited to 'eclipse')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridDropHandler.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridDropHandler.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridDropHandler.java index 6d938fb..0292429 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridDropHandler.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridDropHandler.java @@ -650,7 +650,12 @@ public class GridDropHandler { gravity |= GravityHelper.GRAVITY_CENTER_HORIZ; } mGrid.setGridAttribute(newChild, ATTR_LAYOUT_COLUMN, column); - if (mRowMatch.type == SegmentType.BOTTOM) { + if (mRowMatch.type == SegmentType.BASELINE) { + // There *is* no baseline gravity constant, instead, leave the + // vertical gravity unspecified and GridLayout will treat it as + // baseline alignment + //gravity |= GravityHelper.GRAVITY_BASELINE; + } else if (mRowMatch.type == SegmentType.BOTTOM) { gravity |= GravityHelper.GRAVITY_BOTTOM; } else if (mRowMatch.type == SegmentType.CENTER_VERTICAL) { gravity |= GravityHelper.GRAVITY_CENTER_VERT; @@ -664,7 +669,13 @@ public class GridDropHandler { if (!GravityHelper.isConstrainedHorizontally(gravity)) { gravity |= GravityHelper.GRAVITY_LEFT; } - if (!GravityHelper.isConstrainedVertically(gravity)) { + if (!GravityHelper.isConstrainedVertically(gravity) + // There is no baseline constant, so we have to leave it unconstrained instead + && mRowMatch.type != SegmentType.BASELINE + // You also can't baseline align one element with another that has vertical + // alignment top or bottom, so when we first "freely" place views (e.g. + // at a particular y location), also place it freely (no constraint). + && !mRowMatch.createCell) { gravity |= GravityHelper.GRAVITY_TOP; } mGrid.setGridAttribute(newChild, ATTR_LAYOUT_GRAVITY, getGravity(gravity)); |