summaryrefslogtreecommitdiff
path: root/core/java/android/widget/GridView.java
diff options
context:
space:
mode:
authorAdam Lesinski <adamlesinski@google.com>2010-12-08 12:09:06 -0800
committerAdam Lesinski <adamlesinski@google.com>2010-12-08 12:15:33 -0800
commitedd9508aba83a0e6ed49cce3840783c1c72d1430 (patch)
treec1344afdc458e72426b784f6dba20b721ef1c713 /core/java/android/widget/GridView.java
parent8a78d759c4eed346d58ceef2dc71d832ec2ce6e6 (diff)
Modified GridView to report when to small
-With views being able to set MEASURED_STATE_TOO_SMALL the GridView should do so when the determining its column widths/stretch modes Change-Id: Ib8433ffa9e489467ffe7ed8169d4e23d69658c6c
Diffstat (limited to 'core/java/android/widget/GridView.java')
-rw-r--r--core/java/android/widget/GridView.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/core/java/android/widget/GridView.java b/core/java/android/widget/GridView.java
index 84bc5f20a40a..df01da7dc3f9 100644
--- a/core/java/android/widget/GridView.java
+++ b/core/java/android/widget/GridView.java
@@ -889,10 +889,11 @@ public class GridView extends AbsListView {
return sel;
}
- private void determineColumns(int availableSpace) {
+ private boolean determineColumns(int availableSpace) {
final int requestedHorizontalSpacing = mRequestedHorizontalSpacing;
final int stretchMode = mStretchMode;
final int requestedColumnWidth = mRequestedColumnWidth;
+ boolean didNotInitiallyFit = false;
if (mRequestedNumColumns == AUTO_FIT) {
if (requestedColumnWidth > 0) {
@@ -922,6 +923,11 @@ public class GridView extends AbsListView {
default:
int spaceLeftOver = availableSpace - (mNumColumns * requestedColumnWidth) -
((mNumColumns - 1) * requestedHorizontalSpacing);
+
+ if (spaceLeftOver < 0) {
+ didNotInitiallyFit = true;
+ }
+
switch (stretchMode) {
case STRETCH_COLUMN_WIDTH:
// Stretch the columns
@@ -954,6 +960,7 @@ public class GridView extends AbsListView {
break;
}
+ return didNotInitiallyFit;
}
@Override
@@ -976,7 +983,7 @@ public class GridView extends AbsListView {
}
int childWidth = widthSize - mListPadding.left - mListPadding.right;
- determineColumns(childWidth);
+ boolean didNotInitiallyFit = determineColumns(childWidth);
int childHeight = 0;
int childState = 0;
@@ -1035,7 +1042,7 @@ public class GridView extends AbsListView {
int ourSize = (mRequestedNumColumns*mColumnWidth)
+ ((mRequestedNumColumns-1)*mHorizontalSpacing)
+ mListPadding.left + mListPadding.right;
- if (ourSize > widthSize) {
+ if (ourSize > widthSize || didNotInitiallyFit) {
widthSize |= MEASURED_STATE_TOO_SMALL;
}
}