aboutsummaryrefslogtreecommitdiffstats
path: root/eclipse
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2012-06-12 20:42:24 -0700
committerTor Norbye <tnorbye@google.com>2012-06-12 20:42:24 -0700
commitc9a4954452ae269b7e886a6a2964db0b64fd02a7 (patch)
tree891ea3ea8c3628dc83a756f947585a970f03324f /eclipse
parentbd5eefa93e628dec13b2b970a736ef90d06e977b (diff)
downloadsdk-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.java15
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));