summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Milne <pmilne@google.com>2011-07-07 11:47:08 -0700
committerPhilip Milne <pmilne@google.com>2011-07-07 14:23:00 -0700
commit5d1a9840aaf57ae90716f0ac34abdcd09f7f4ed6 (patch)
tree4f55bb8da795bf4dc18377d69b2e61071211d9aa
parentb75a798471342da5e4624048c5516773dfecf4ca (diff)
Simplify and tidy the API for maximum value support.
Also: . Remove CAN_SHRINK, FIXED from public view. These can be added later. Change-Id: I63a64ac4748605da60373c8e3c2109178b5260c2
-rw-r--r--api/current.txt17
-rw-r--r--core/java/android/widget/GridLayout.java182
-rw-r--r--core/res/res/layout/keyguard_screen_password_landscape.xml17
-rw-r--r--core/res/res/layout/keyguard_screen_tab_unlock_land.xml20
-rw-r--r--core/res/res/layout/keyguard_screen_unlock_landscape.xml16
-rw-r--r--core/res/res/layout/keyguard_screen_unlock_portrait.xml2
-rwxr-xr-xcore/res/res/values/attrs.xml20
-rw-r--r--core/res/res/values/public.xml6
-rw-r--r--tests/GridLayoutTest/res/layout/grid3.xml4
-rw-r--r--tests/GridLayoutTest/src/com/android/test/layout/Activity2.java4
10 files changed, 140 insertions, 148 deletions
diff --git a/api/current.txt b/api/current.txt
index 9ad7b4ed2257..ce955476d126 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -598,10 +598,10 @@ package android {
field public static final int layout_centerInParent = 16843151; // 0x101018f
field public static final int layout_centerVertical = 16843153; // 0x1010191
field public static final int layout_column = 16843084; // 0x101014c
- field public static final int layout_columnSpan = 16843644; // 0x101037c
+ field public static final int layout_columnFlexibility = 16843646; // 0x101037e
+ field public static final int layout_columnSpan = 16843645; // 0x101037d
field public static final int layout_gravity = 16842931; // 0x10100b3
field public static final int layout_height = 16842997; // 0x10100f5
- field public static final int layout_heightSpec = 16843646; // 0x101037e
field public static final int layout_margin = 16842998; // 0x10100f6
field public static final int layout_marginBottom = 16843002; // 0x10100fa
field public static final int layout_marginEnd = 16843674; // 0x101039a
@@ -610,6 +610,7 @@ package android {
field public static final int layout_marginStart = 16843673; // 0x1010399
field public static final int layout_marginTop = 16843000; // 0x10100f8
field public static final int layout_row = 16843642; // 0x101037a
+ field public static final int layout_rowFlexibility = 16843644; // 0x101037c
field public static final int layout_rowSpan = 16843643; // 0x101037b
field public static final int layout_scale = 16843155; // 0x1010193
field public static final int layout_span = 16843085; // 0x101014d
@@ -617,7 +618,6 @@ package android {
field public static final int layout_toRightOf = 16843139; // 0x1010183
field public static final int layout_weight = 16843137; // 0x1010181
field public static final int layout_width = 16842996; // 0x10100f4
- field public static final int layout_widthSpec = 16843645; // 0x101037d
field public static final int layout_x = 16843135; // 0x101017f
field public static final int layout_y = 16843136; // 0x1010180
field public static final int left = 16843181; // 0x10101ad
@@ -24953,11 +24953,9 @@ package android.widget {
field public static final int ALIGN_MARGINS = 1; // 0x1
field public static final android.widget.GridLayout.Alignment BASELINE;
field public static final android.widget.GridLayout.Alignment BOTTOM;
- field public static final android.widget.GridLayout.Spec CAN_SHRINK;
- field public static final android.widget.GridLayout.Spec CAN_STRETCH;
+ field public static final int CAN_STRETCH = 2; // 0x2
field public static final android.widget.GridLayout.Alignment CENTER;
field public static final android.widget.GridLayout.Alignment FILL;
- field public static final android.widget.GridLayout.Spec FIXED;
field public static final int HORIZONTAL = 0; // 0x0
field public static final android.widget.GridLayout.Alignment LEFT;
field public static final android.widget.GridLayout.Alignment RIGHT;
@@ -24973,6 +24971,7 @@ package android.widget {
ctor public GridLayout.Group(int, int, android.widget.GridLayout.Alignment);
ctor public GridLayout.Group(int, android.widget.GridLayout.Alignment);
field public final android.widget.GridLayout.Alignment alignment;
+ field public int flexibility;
}
public static class GridLayout.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
@@ -24984,13 +24983,7 @@ package android.widget {
ctor public GridLayout.LayoutParams(android.content.Context, android.util.AttributeSet);
method public void setGravity(int);
field public android.widget.GridLayout.Group columnGroup;
- field public android.widget.GridLayout.Spec heightSpec;
field public android.widget.GridLayout.Group rowGroup;
- field public android.widget.GridLayout.Spec widthSpec;
- }
-
- public static abstract class GridLayout.Spec {
- ctor public GridLayout.Spec();
}
public class GridView extends android.widget.AbsListView {
diff --git a/core/java/android/widget/GridLayout.java b/core/java/android/widget/GridLayout.java
index 7c0470e17434..c2759e5b7e2b 100644
--- a/core/java/android/widget/GridLayout.java
+++ b/core/java/android/widget/GridLayout.java
@@ -92,10 +92,8 @@ import static java.lang.Math.min;
*
* <h4>Excess Space Distribution</h4>
*
- * Like {@link LinearLayout}, a child's ability to stretch is controlled
- * using <em>weights</em>, which are specified using the
- * {@link GridLayout.LayoutParams#widthSpec widthSpec} and
- * {@link GridLayout.LayoutParams#heightSpec heightSpec} layout parameters.
+ * A child's ability to stretch is controlled using the {@link Group#flexibility flexibility}
+ * properties of its row and column groups.
* <p>
* <p>
* See {@link GridLayout.LayoutParams} for a full description of the
@@ -1055,7 +1053,7 @@ public class GridLayout extends ViewGroup {
if (isGone(c)) continue;
LayoutParams lp = getLayoutParams(c);
Group g = horizontal ? lp.columnGroup : lp.rowGroup;
- groupBounds.getValue(i).include(c, g, GridLayout.this, this, lp);
+ groupBounds.getValue(i).include(c, g, GridLayout.this, this);
}
}
@@ -1087,13 +1085,17 @@ public class GridLayout extends ViewGroup {
spans[i].reset();
}
- // use getter to trigger a re-evaluation
+ // Use getter to trigger a re-evaluation
Bounds[] bounds = getGroupBounds().values;
for (int i = 0; i < bounds.length; i++) {
int size = bounds[i].size(min);
- int value = min ? size : -size;
MutableInt valueHolder = links.getValue(i);
- valueHolder.value = max(valueHolder.value, value);
+ if (min) {
+ valueHolder.value = max(valueHolder.value, size);
+ }
+ else {
+ valueHolder.value = -max(-valueHolder.value, size);
+ }
}
}
@@ -1155,7 +1157,7 @@ public class GridLayout extends ViewGroup {
int[] sizes = new int[N];
for (Arc arc : arcs) {
sizes[arc.span.min]++;
- }
+ }
for (int i = 0; i < sizes.length; i++) {
result[i] = new Arc[sizes[i]];
}
@@ -1622,16 +1624,14 @@ public class GridLayout extends ViewGroup {
* <li>{@link #rowGroup}{@code .alignment} = {@link #BASELINE} </li>
* <li>{@link #columnGroup}{@code .span} = {@code [0, 1]} </li>
* <li>{@link #columnGroup}{@code .alignment} = {@link #LEFT} </li>
- * <li>{@link #widthSpec} = {@link #FIXED} </li>
- * <li>{@link #heightSpec} = {@link #FIXED} </li>
* </ul>
*
* @attr ref android.R.styleable#GridLayout_Layout_layout_row
* @attr ref android.R.styleable#GridLayout_Layout_layout_rowSpan
- * @attr ref android.R.styleable#GridLayout_Layout_layout_heightSpec
+ * @attr ref android.R.styleable#GridLayout_Layout_layout_rowFlexibility
* @attr ref android.R.styleable#GridLayout_Layout_layout_column
* @attr ref android.R.styleable#GridLayout_Layout_layout_columnSpan
- * @attr ref android.R.styleable#GridLayout_Layout_layout_widthSpec
+ * @attr ref android.R.styleable#GridLayout_Layout_layout_columnFlexibility
* @attr ref android.R.styleable#GridLayout_Layout_layout_gravity
*/
public static class LayoutParams extends MarginLayoutParams {
@@ -1647,19 +1647,12 @@ public class GridLayout extends ViewGroup {
private static final int DEFAULT_SPAN_SIZE = DEFAULT_SPAN.size();
private static final Alignment DEFAULT_COLUMN_ALIGNMENT = LEFT;
private static final Alignment DEFAULT_ROW_ALIGNMENT = BASELINE;
- private static final Group DEFAULT_COLUMN_GROUP =
- new Group(DEFAULT_SPAN, DEFAULT_COLUMN_ALIGNMENT);
- private static final Group DEFAULT_ROW_GROUP =
- new Group(DEFAULT_SPAN, DEFAULT_ROW_ALIGNMENT);
- private static final Spec DEFAULT_SPEC = FIXED;
- private static final int DEFAULT_SPEC_INDEX = 0;
// Misc
private static final Rect CONTAINER_BOUNDS = new Rect(0, 0, 2, 2);
private static final Alignment[] COLUMN_ALIGNMENTS = { LEFT, CENTER, RIGHT };
private static final Alignment[] ROW_ALIGNMENTS = { TOP, CENTER, BOTTOM };
- private static final Spec[] SPECS = { FIXED, CAN_SHRINK, CAN_STRETCH };
// TypedArray indices
@@ -1672,10 +1665,14 @@ public class GridLayout extends ViewGroup {
private static final int COLUMN = styleable.GridLayout_Layout_layout_column;
private static final int COLUMN_SPAN = styleable.GridLayout_Layout_layout_columnSpan;
- private static final int WIDTH_SPEC = styleable.GridLayout_Layout_layout_widthSpec;
+ private static final int COLUMN_FLEXIBILITY =
+ styleable.GridLayout_Layout_layout_columnFlexibility;
+
private static final int ROW = styleable.GridLayout_Layout_layout_row;
private static final int ROW_SPAN = styleable.GridLayout_Layout_layout_rowSpan;
- private static final int HEIGHT_SPEC = styleable.GridLayout_Layout_layout_heightSpec;
+ private static final int ROW_FLEXIBILITY =
+ styleable.GridLayout_Layout_layout_rowFlexibility;
+
private static final int GRAVITY = styleable.GridLayout_Layout_layout_gravity;
// Instance variables
@@ -1690,30 +1687,17 @@ public class GridLayout extends ViewGroup {
* described by these layout parameters.
*/
public Group columnGroup;
- /**
- * The proportional space that should be taken by the associated column group
- * during excess space distribution.
- */
- public Spec widthSpec;
- /**
- * The proportional space that should be taken by the associated row group
- * during excess space distribution.
- */
- public Spec heightSpec;
// Constructors
private LayoutParams(
int width, int height,
int left, int top, int right, int bottom,
- Group rowGroup, Group columnGroup,
- Spec widthSpec, Spec heightSpec) {
+ Group rowGroup, Group columnGroup) {
super(width, height);
setMargins(left, top, right, bottom);
this.rowGroup = rowGroup;
this.columnGroup = columnGroup;
- this.heightSpec = heightSpec;
- this.widthSpec = widthSpec;
}
/**
@@ -1727,14 +1711,15 @@ public class GridLayout extends ViewGroup {
public LayoutParams(Group rowGroup, Group columnGroup) {
this(DEFAULT_WIDTH, DEFAULT_HEIGHT,
DEFAULT_MARGIN, DEFAULT_MARGIN, DEFAULT_MARGIN, DEFAULT_MARGIN,
- rowGroup, columnGroup, DEFAULT_SPEC, DEFAULT_SPEC);
+ rowGroup, columnGroup);
}
/**
* Constructs a new LayoutParams with default values as defined in {@link LayoutParams}.
*/
public LayoutParams() {
- this(DEFAULT_ROW_GROUP, DEFAULT_COLUMN_GROUP);
+ this(new Group(DEFAULT_SPAN, DEFAULT_ROW_ALIGNMENT),
+ new Group(DEFAULT_SPAN, DEFAULT_COLUMN_ALIGNMENT));
}
// Copying constructors
@@ -1758,10 +1743,8 @@ public class GridLayout extends ViewGroup {
*/
public LayoutParams(LayoutParams that) {
super(that);
- this.columnGroup = that.columnGroup;
- this.rowGroup = that.rowGroup;
- this.widthSpec = that.widthSpec;
- this.heightSpec = that.heightSpec;
+ this.columnGroup = new Group(that.columnGroup);
+ this.rowGroup = new Group(that.rowGroup);
}
// AttributeSet constructors
@@ -1825,7 +1808,7 @@ public class GridLayout extends ViewGroup {
// Gravity. For conversion from the static the integers defined in the Gravity class,
// use Gravity.apply() to apply gravity to a view of zero size and see where it ends up.
- private static Alignment getColumnAlignment(int gravity, int width) {
+ private static Alignment getColAlignment(int gravity, int width) {
Rect r = new Rect(0, 0, 0, 0);
Gravity.apply(gravity, 0, 0, CONTAINER_BOUNDS, r);
@@ -1853,14 +1836,14 @@ public class GridLayout extends ViewGroup {
int column = a.getInt(COLUMN, DEFAULT_COLUMN);
int columnSpan = a.getInt(COLUMN_SPAN, DEFAULT_SPAN_SIZE);
Interval hSpan = new Interval(column, column + columnSpan);
- this.columnGroup = new Group(hSpan, getColumnAlignment(gravity, width));
- this.widthSpec = SPECS[a.getInt(WIDTH_SPEC, DEFAULT_SPEC_INDEX)];
+ int hFlexibility = a.getInt(COLUMN_FLEXIBILITY, Group.DEFAULT_FLEXIBILITY);
+ this.columnGroup = new Group(hSpan, getColAlignment(gravity, width), hFlexibility);
int row = a.getInt(ROW, DEFAULT_ROW);
int rowSpan = a.getInt(ROW_SPAN, DEFAULT_SPAN_SIZE);
Interval vSpan = new Interval(row, row + rowSpan);
- this.rowGroup = new Group(vSpan, getRowAlignment(gravity, height));
- this.heightSpec = SPECS[a.getInt(HEIGHT_SPEC, DEFAULT_SPEC_INDEX)];
+ int vFlexibility = a.getInt(ROW_FLEXIBILITY, Group.DEFAULT_FLEXIBILITY);
+ this.rowGroup = new Group(vSpan, getRowAlignment(gravity, height), vFlexibility);
} finally {
a.recycle();
}
@@ -1875,7 +1858,7 @@ public class GridLayout extends ViewGroup {
* @attr ref android.R.styleable#GridLayout_Layout_layout_gravity
*/
public void setGravity(int gravity) {
- columnGroup = columnGroup.copyWriteAlignment(getColumnAlignment(gravity, width));
+ columnGroup = columnGroup.copyWriteAlignment(getColAlignment(gravity, width));
rowGroup = rowGroup.copyWriteAlignment(getRowAlignment(gravity, height));
}
@@ -2051,7 +2034,7 @@ public class GridLayout extends ViewGroup {
public int before;
public int after;
- public boolean canStretch;
+ public int flexibility;
private Bounds() {
reset();
@@ -2060,7 +2043,7 @@ public class GridLayout extends ViewGroup {
protected void reset() {
before = Integer.MIN_VALUE;
after = Integer.MIN_VALUE;
- canStretch = false;
+ flexibility = UNDEFINED_FLEXIBILITY;
}
protected void include(int before, int after) {
@@ -2069,8 +2052,13 @@ public class GridLayout extends ViewGroup {
}
protected int size(boolean min) {
- if (!min && canStretch) {
- return MAX_SIZE;
+ if (!min) {
+ // Note in the usual case, components don't define anything
+ // leaving their flexibility is undefined and their stretchability
+ // defined as if the CAN_STRETCH flag was false.
+ if (canStretch(flexibility) && !isUndefined(flexibility)) {
+ return MAX_SIZE;
+ }
}
return before + after;
}
@@ -2079,14 +2067,11 @@ public class GridLayout extends ViewGroup {
return before - alignment.getAlignmentValue(c, size);
}
- protected void include(View c, Group g, GridLayout gridLayout, Axis axis, LayoutParams lp) {
- Spec spec = axis.horizontal ? lp.widthSpec : lp.heightSpec;
- if (spec == CAN_STRETCH) {
- canStretch = true;
- }
+ protected void include(View c, Group group, GridLayout gridLayout, Axis axis) {
+ this.flexibility &= group.flexibility;
int size = gridLayout.getMeasurementIncludingMargin(c, axis.horizontal);
// todo test this works correctly when the returned value is UNDEFINED
- int before = g.alignment.getAlignmentValue(c, size);
+ int before = group.alignment.getAlignmentValue(c, size);
include(before, size - before);
}
@@ -2198,6 +2183,8 @@ public class GridLayout extends ViewGroup {
* {@code span} and {@code alignment}.
*/
public static class Group {
+ private static final int DEFAULT_FLEXIBILITY = UNDEFINED_FLEXIBILITY;
+
private static final Group GONE = new Group(Interval.GONE, Alignment.GONE);
/**
@@ -2216,6 +2203,18 @@ public class GridLayout extends ViewGroup {
public final Alignment alignment;
/**
+ * The flexibility field tells GridLayout how to derive minimum and maximum size
+ * values for a component. Specifications are made with respect to a child's
+ * 'measured size'. A child's measured size is, in turn, controlled by its
+ * height and width layout parameters which either specify a size or, in
+ * the case of {@link LayoutParams#WRAP_CONTENT WRAP_CONTENT}, defer to
+ * the computed size of the component.
+ *
+ * @see GridLayout#CAN_STRETCH
+ */
+ public int flexibility = DEFAULT_FLEXIBILITY;
+
+ /**
* Construct a new Group, {@code group}, where:
* <ul>
* <li> {@code group.span = span} </li>
@@ -2225,9 +2224,22 @@ public class GridLayout extends ViewGroup {
* @param span the span
* @param alignment the alignment
*/
- Group(Interval span, Alignment alignment) {
+ private Group(Interval span, Alignment alignment) {
+ this.span = span;
+ this.alignment = alignment;
+ }
+
+ private Group(Interval span, Alignment alignment, int flexibility) {
this.span = span;
this.alignment = alignment;
+ this.flexibility = flexibility;
+ }
+
+ /* Copying constructor */
+ private Group(Group that) {
+ this.span = that.span;
+ this.alignment = that.alignment;
+ this.flexibility = that.flexibility;
}
/**
@@ -2260,11 +2272,11 @@ public class GridLayout extends ViewGroup {
}
private Group copyWriteSpan(Interval span) {
- return new Group(span, alignment);
+ return new Group(span, alignment, flexibility);
}
private Group copyWriteAlignment(Alignment alignment) {
- return new Group(span, alignment);
+ return new Group(span, alignment, flexibility);
}
/**
@@ -2490,40 +2502,54 @@ public class GridLayout extends ViewGroup {
}
};
- /**
- * Spec's tell GridLayout how to derive minimum and maximum size values for a
- * component. Specifications are made with respect to a child's 'measured size'.
- * A child's measured size is, in turn, controlled by its height and width
- * layout parameters which either specify a size or, in the case of
- * WRAP_CONTENT, defer to the computed size of the component.
- */
- public static abstract class Spec {
+ private static boolean canStretch(int flexibility) {
+ return (flexibility & CAN_STRETCH) != 0;
+ }
+
+ private static boolean isUndefined(int flexibility) {
+ return (flexibility & UNDEFINED) != 0;
}
/**
* Indicates that a view requests precisely the size specified by its layout parameters.
*
- * @see Spec
+ * @see Group#flexibility
+ *
+ * @hide
*/
- public static final Spec FIXED = new Spec() {
- };
+ public static final int FIXED = 0;
/**
* Indicates that a view's size should lie between its minimum and the size specified by
* its layout parameters.
*
- * @see Spec
+ * @see Group#flexibility
+ *
+ * @hide
*/
- public static final Spec CAN_SHRINK = new Spec() {
- };
+ public static final int CAN_SHRINK = 1;
/**
* Indicates that a view's size should be greater than or equal to the size specified by
* its layout parameters.
*
- * @see Spec
+ * @see Group#flexibility
*/
- public static final Spec CAN_STRETCH = new Spec() {
- };
+ public static final int CAN_STRETCH = 2;
+
+ /**
+ * Indicates that a view will ignore its measurement, and can take any size that is greater
+ * than its minimum.
+ *
+ * @see Group#flexibility
+ */
+ private static final int CAN_SHRINK_OR_STRETCH = CAN_SHRINK | CAN_STRETCH;
+
+ /**
+ * A default value for flexibility.
+ *
+ * @see Group#flexibility
+ */
+ private static final int UNDEFINED_FLEXIBILITY = UNDEFINED | CAN_SHRINK | CAN_STRETCH;
}
diff --git a/core/res/res/layout/keyguard_screen_password_landscape.xml b/core/res/res/layout/keyguard_screen_password_landscape.xml
index 30df91b24450..e867fe0656ad 100644
--- a/core/res/res/layout/keyguard_screen_password_landscape.xml
+++ b/core/res/res/layout/keyguard_screen_password_landscape.xml
@@ -24,15 +24,13 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- android:rowCount="11"
+ android:rowCount="10"
android:id="@+id/root"
android:clipChildren="false">
<!-- Column 0 -->
- <Space android:height="20dip"/>
-
<com.android.internal.widget.DigitalClock android:id="@+id/time"
- android:layout_marginTop="16dip"
+ android:layout_marginTop="8dip"
android:layout_marginBottom="8dip"
android:layout_gravity="right">
@@ -120,7 +118,10 @@
android:layout_gravity="right"
/>
- <Space android:height="20dip"/>
+ <Space
+ android:layout_rowFlexibility="canStretch"
+ android:layout_columnFlexibility="canStretch"
+ />
<TextView
android:id="@+id/carrier"
@@ -156,15 +157,13 @@
/>
<!-- Column 1 -->
- <Space android:layout_widthSpec="canStretch" android:layout_rowSpan="11" />
+ <Space android:layout_width="32dip" android:layout_rowSpan="10" />
<!-- Column 2 - password entry field and PIN keyboard -->
<LinearLayout
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
android:orientation="vertical"
android:layout_gravity="center|fill"
- android:layout_rowSpan="11">
+ android:layout_rowSpan="10">
<EditText android:id="@+id/passwordEntry"
android:layout_height="wrap_content"
diff --git a/core/res/res/layout/keyguard_screen_tab_unlock_land.xml b/core/res/res/layout/keyguard_screen_tab_unlock_land.xml
index c8597209e763..7aab04e6f960 100644
--- a/core/res/res/layout/keyguard_screen_tab_unlock_land.xml
+++ b/core/res/res/layout/keyguard_screen_tab_unlock_land.xml
@@ -24,15 +24,13 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- android:rowCount="10"
+ android:rowCount="8"
android:id="@+id/root"
android:clipChildren="false">
<!-- Column 0 -->
- <Space android:height="20dip"/>
-
<com.android.internal.widget.DigitalClock android:id="@+id/time"
- android:layout_marginTop="16dip"
+ android:layout_marginTop="8dip"
android:layout_marginBottom="8dip"
android:layout_gravity="right">
@@ -120,7 +118,10 @@
android:layout_gravity="right"
/>
- <Space android:height="20dip"/>
+ <Space
+ android:layout_rowFlexibility="canStretch"
+ android:layout_columnFlexibility="canStretch"
+ />
<LinearLayout android:orientation="vertical"
android:layout_gravity="right"
@@ -169,17 +170,14 @@
</LinearLayout>
<!-- Column 1 -->
- <Space
- android:width="20dip"
- android:layout_heightSpec="canStretch"
- android:layout_rowSpan="10" />
+ <Space android:layout_width="32dip" android:layout_rowSpan="8" />
<!-- Column 2 -->
<com.android.internal.widget.multiwaveview.MultiWaveView
android:id="@+id/unlock_widget"
- android:layout_width="300dip"
+ android:layout_width="200dip"
android:layout_height="match_parent"
- android:layout_rowSpan="10"
+ android:layout_rowSpan="8"
android:targetDrawables="@array/lockscreen_targets_when_silent"
android:handleDrawable="@drawable/ic_lockscreen_handle"
diff --git a/core/res/res/layout/keyguard_screen_unlock_landscape.xml b/core/res/res/layout/keyguard_screen_unlock_landscape.xml
index 0070ed0ec87b..8f083a09032d 100644
--- a/core/res/res/layout/keyguard_screen_unlock_landscape.xml
+++ b/core/res/res/layout/keyguard_screen_unlock_landscape.xml
@@ -30,8 +30,6 @@
<!-- Column 0: Time, date and status -->
<com.android.internal.widget.DigitalClock android:id="@+id/time"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
android:layout_marginTop="8dip"
android:layout_marginBottom="12dip"
android:layout_gravity="right">
@@ -66,8 +64,6 @@
<TextView
android:id="@+id/date"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:textAppearance="?android:attr/textAppearanceMedium"
@@ -77,8 +73,6 @@
<TextView
android:id="@+id/alarm_status"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:textAppearance="?android:attr/textAppearanceMedium"
@@ -89,8 +83,6 @@
<TextView
android:id="@+id/status1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:textAppearance="?android:attr/textAppearanceMedium"
@@ -100,10 +92,8 @@
<!-- TODO: remove hard coded height since layout_rowWeight doesn't seem to be working -->
<Space
- android:layout_height="43dip"
- android:layout_gravity="fill"
- android:layout_heightSpec="canStretch"
- android:layout_widthSpec="canStretch"
+ android:layout_rowFlexibility="canStretch"
+ android:layout_columnFlexibility="canStretch"
/>
<TextView android:id="@+id/carrier"
@@ -117,8 +107,6 @@
<LinearLayout
style="?android:attr/buttonBarStyle"
android:orientation="vertical"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
android:layout_gravity="right">
<Button android:id="@+id/emergencyCallButton"
diff --git a/core/res/res/layout/keyguard_screen_unlock_portrait.xml b/core/res/res/layout/keyguard_screen_unlock_portrait.xml
index 28c530291bcd..35fd473b08de 100644
--- a/core/res/res/layout/keyguard_screen_unlock_portrait.xml
+++ b/core/res/res/layout/keyguard_screen_unlock_portrait.xml
@@ -125,7 +125,7 @@
android:layout_marginBottom="4dip"
android:layout_marginLeft="8dip"
android:layout_gravity="center|bottom"
- android:layout_heightSpec="canStretch"
+ android:layout_rowFlexibility="canStretch"
/>
<TextView
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index b92ce6a80f48..2cc81710fd5d 100755
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -3342,28 +3342,16 @@
<attr name="layout_gravity" />
<!-- A value specifying how much deficit or excess width this component can accomodate.
The default is FIXED.
- See {@link android.widget.GridLayout.LayoutParams#widthSpec}.-->
- <attr name="layout_widthSpec" >
- <!-- If possible, width should be exactly as specified.
- See {@link android.widget.GridLayout#FIXED}. -->
- <enum name="fixed" value="0" />
- <!-- If possible, width should be less than or equal to the specified width.
- See {@link android.widget.GridLayout#CAN_SHRINK}. -->
- <enum name="canShrink" value="1" />
+ See {@link android.widget.GridLayout.Group#flexibility}.-->
+ <attr name="layout_columnFlexibility" >
<!-- If possible, width should be greater than or equal to the specified width.
See {@link android.widget.GridLayout#CAN_STRETCH}. -->
<enum name="canStretch" value="2" />
</attr>
<!-- A value specifying how much deficit or excess height this component can accomodate.
The default is FIXED.
- See {@link android.widget.GridLayout.LayoutParams#heightSpec}.-->
- <attr name="layout_heightSpec" >
- <!-- If possible, height should be exactly as specified.
- See {@link android.widget.GridLayout#FIXED}. -->
- <enum name="fixed" value="0" />
- <!-- If possible, height should be less than or equal to the specified height.
- See {@link android.widget.GridLayout#CAN_SHRINK}. -->
- <enum name="canShrink" value="1" />
+ See {@link android.widget.GridLayout.Group#flexibility}.-->
+ <attr name="layout_rowFlexibility" >
<!-- If possible, height should be greater than or equal to the specified height.
See {@link android.widget.GridLayout#CAN_STRETCH}. -->
<enum name="canStretch" value="2" />
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 75acb37b4ded..737176d69abf 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -1732,10 +1732,10 @@
<public type="attr" name="layout_row" />
<public type="attr" name="layout_rowSpan" />
- <public type="attr" name="layout_columnSpan" />
+ <public type="attr" name="layout_rowFlexibility" />
- <public type="attr" name="layout_widthSpec" />
- <public type="attr" name="layout_heightSpec" />
+ <public type="attr" name="layout_columnSpan" />
+ <public type="attr" name="layout_columnFlexibility" />
<public type="attr" name="actionModeSelectAllDrawable" />
diff --git a/tests/GridLayoutTest/res/layout/grid3.xml b/tests/GridLayoutTest/res/layout/grid3.xml
index 536be7eefa03..3c2db545a6b3 100644
--- a/tests/GridLayoutTest/res/layout/grid3.xml
+++ b/tests/GridLayoutTest/res/layout/grid3.xml
@@ -66,8 +66,8 @@
<Space
android:layout_row="4"
android:layout_column="2"
- android:layout_heightSpec="canStretch"
- android:layout_widthSpec="canStretch"
+ android:layout_rowFlexibility="canStretch"
+ android:layout_columnFlexibility="canStretch"
/>
<Button
diff --git a/tests/GridLayoutTest/src/com/android/test/layout/Activity2.java b/tests/GridLayoutTest/src/com/android/test/layout/Activity2.java
index cba98c2b7538..b9bf526b216a 100644
--- a/tests/GridLayoutTest/src/com/android/test/layout/Activity2.java
+++ b/tests/GridLayoutTest/src/com/android/test/layout/Activity2.java
@@ -97,8 +97,8 @@ public class Activity2 extends Activity {
Space v = new Space(context);
{
LayoutParams lp = new LayoutParams(row5, col3);
- lp.widthSpec = CAN_STRETCH;
- lp.heightSpec = CAN_STRETCH;
+ lp.columnGroup.flexibility = CAN_STRETCH;
+ lp.rowGroup.flexibility = CAN_STRETCH;
vg.addView(v, lp);
}
}