summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chris Yerga <yerga@google.com> 2011-01-17 13:30:53 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2011-01-17 13:30:53 -0800
commite2364b098f00577aa90e63f8bb9b55a99021a5b2 (patch)
treea7ebad3ae5b1863f00fed2ac7fb2d3efafedd122
parentadee6b3559b0260361305e57662ebcaed93ddeaa (diff)
parentefd0811a31e79aa1d3ee6fcaf8d79304872fcc5e (diff)
Merge "Fix content width calculation for Spinner control. The width of the dropdown was only taking into account the width of the items and not background padding." into honeycomb
-rw-r--r--core/java/android/widget/Spinner.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/core/java/android/widget/Spinner.java b/core/java/android/widget/Spinner.java
index 010262823109..0baddcb97501 100644
--- a/core/java/android/widget/Spinner.java
+++ b/core/java/android/widget/Spinner.java
@@ -23,6 +23,8 @@ import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.res.TypedArray;
import android.database.DataSetObserver;
+import android.graphics.drawable.Drawable;
+import android.graphics.Rect;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.view.Gravity;
@@ -632,7 +634,8 @@ public class Spinner extends AbsSpinner implements OnClickListener {
private class DropdownPopup extends ListPopupWindow implements SpinnerPopup {
private CharSequence mHintText;
private int mPopupMaxWidth;
-
+ private Rect mTempRect = new Rect();
+
public DropdownPopup(Context context, AttributeSet attrs, int defStyleRes) {
super(context, attrs, 0, defStyleRes);
@@ -699,6 +702,14 @@ public class Spinner extends AbsSpinner implements OnClickListener {
itemView.measure(widthMeasureSpec, heightMeasureSpec);
width = Math.max(width, itemView.getMeasuredWidth());
}
+
+ // Add background padding to measured width
+ Drawable popupBackground = getBackground();
+ if (popupBackground != null) {
+ popupBackground.getPadding(mTempRect);
+ width += mTempRect.left + mTempRect.right;
+ }
+
return width;
}