diff options
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/widget/ListPopupWindow.java | 22 | ||||
-rw-r--r-- | core/java/android/widget/Spinner.java | 1 |
2 files changed, 21 insertions, 2 deletions
diff --git a/core/java/android/widget/ListPopupWindow.java b/core/java/android/widget/ListPopupWindow.java index 5c97593..f4d5d74 100644 --- a/core/java/android/widget/ListPopupWindow.java +++ b/core/java/android/widget/ListPopupWindow.java @@ -1080,6 +1080,8 @@ public class ListPopupWindow { if (!mDropDownVerticalOffsetSet) { mDropDownVerticalOffset = -mTempRect.top; } + } else { + mTempRect.setEmpty(); } // Max height available on the screen for a popup. @@ -1092,7 +1094,25 @@ public class ListPopupWindow { return maxHeight + padding; } - final int listContent = mDropDownList.measureHeightOfChildren(MeasureSpec.UNSPECIFIED, + final int childWidthSpec; + switch (mDropDownWidth) { + case ViewGroup.LayoutParams.WRAP_CONTENT: + childWidthSpec = MeasureSpec.makeMeasureSpec( + mContext.getResources().getDisplayMetrics().widthPixels - + (mTempRect.left + mTempRect.right), + MeasureSpec.AT_MOST); + break; + case ViewGroup.LayoutParams.MATCH_PARENT: + childWidthSpec = MeasureSpec.makeMeasureSpec( + mContext.getResources().getDisplayMetrics().widthPixels - + (mTempRect.left + mTempRect.right), + MeasureSpec.EXACTLY); + break; + default: + childWidthSpec = MeasureSpec.makeMeasureSpec(mDropDownWidth, MeasureSpec.EXACTLY); + break; + } + final int listContent = mDropDownList.measureHeightOfChildren(childWidthSpec, 0, ListView.NO_POSITION, maxHeight - otherHeights, -1); // add padding only if the list has items in it, that way we don't show // the popup if it is not needed diff --git a/core/java/android/widget/Spinner.java b/core/java/android/widget/Spinner.java index 89c506f..6540613 100644 --- a/core/java/android/widget/Spinner.java +++ b/core/java/android/widget/Spinner.java @@ -26,7 +26,6 @@ import android.database.DataSetObserver; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.util.AttributeSet; -import android.util.DisplayMetrics; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; |