diff options
| author | Adam Lesinski <adamlesinski@google.com> | 2010-12-08 12:09:06 -0800 |
|---|---|---|
| committer | Adam Lesinski <adamlesinski@google.com> | 2010-12-08 12:15:33 -0800 |
| commit | edd9508aba83a0e6ed49cce3840783c1c72d1430 (patch) | |
| tree | c1344afdc458e72426b784f6dba20b721ef1c713 /core/java/android/widget/GridView.java | |
| parent | 8a78d759c4eed346d58ceef2dc71d832ec2ce6e6 (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.java | 13 |
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; } } |
