Loading core/java/android/widget/Spinner.java +23 −11 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.database.DataSetObserver; import android.graphics.Rect; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.Gravity; import android.view.View; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup; Loading Loading @@ -732,13 +733,30 @@ public class Spinner extends AbsSpinner implements OnClickListener { @Override @Override public void show() { public void show() { final Drawable background = getBackground(); int bgOffset = 0; if (background != null) { background.getPadding(mTempRect); bgOffset = -mTempRect.left; } else { mTempRect.left = mTempRect.right = 0; } final int spinnerPaddingLeft = Spinner.this.getPaddingLeft(); final int spinnerPaddingLeft = Spinner.this.getPaddingLeft(); if (mDropDownWidth == WRAP_CONTENT) { if (mDropDownWidth == WRAP_CONTENT) { final int spinnerWidth = Spinner.this.getWidth(); final int spinnerWidth = Spinner.this.getWidth(); final int spinnerPaddingRight = Spinner.this.getPaddingRight(); final int spinnerPaddingRight = Spinner.this.getPaddingRight(); int contentWidth = measureContentWidth( (SpinnerAdapter) mAdapter, getBackground()); final int contentWidthLimit = mContext.getResources() .getDisplayMetrics().widthPixels - mTempRect.left - mTempRect.right; if (contentWidth > contentWidthLimit) { contentWidth = contentWidthLimit; } setContentWidth(Math.max( setContentWidth(Math.max( measureContentWidth((SpinnerAdapter) mAdapter, getBackground()), contentWidth, spinnerWidth - spinnerPaddingLeft - spinnerPaddingRight)); spinnerWidth - spinnerPaddingLeft - spinnerPaddingRight)); } else if (mDropDownWidth == MATCH_PARENT) { } else if (mDropDownWidth == MATCH_PARENT) { final int spinnerWidth = Spinner.this.getWidth(); final int spinnerWidth = Spinner.this.getWidth(); final int spinnerPaddingRight = Spinner.this.getPaddingRight(); final int spinnerPaddingRight = Spinner.this.getPaddingRight(); Loading @@ -746,12 +764,6 @@ public class Spinner extends AbsSpinner implements OnClickListener { } else { } else { setContentWidth(mDropDownWidth); setContentWidth(mDropDownWidth); } } final Drawable background = getBackground(); int bgOffset = 0; if (background != null) { background.getPadding(mTempRect); bgOffset = -mTempRect.left; } setHorizontalOffset(bgOffset + spinnerPaddingLeft); setHorizontalOffset(bgOffset + spinnerPaddingLeft); setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED); setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED); super.show(); super.show(); Loading Loading
core/java/android/widget/Spinner.java +23 −11 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.database.DataSetObserver; import android.graphics.Rect; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.Gravity; import android.view.View; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup; Loading Loading @@ -732,13 +733,30 @@ public class Spinner extends AbsSpinner implements OnClickListener { @Override @Override public void show() { public void show() { final Drawable background = getBackground(); int bgOffset = 0; if (background != null) { background.getPadding(mTempRect); bgOffset = -mTempRect.left; } else { mTempRect.left = mTempRect.right = 0; } final int spinnerPaddingLeft = Spinner.this.getPaddingLeft(); final int spinnerPaddingLeft = Spinner.this.getPaddingLeft(); if (mDropDownWidth == WRAP_CONTENT) { if (mDropDownWidth == WRAP_CONTENT) { final int spinnerWidth = Spinner.this.getWidth(); final int spinnerWidth = Spinner.this.getWidth(); final int spinnerPaddingRight = Spinner.this.getPaddingRight(); final int spinnerPaddingRight = Spinner.this.getPaddingRight(); int contentWidth = measureContentWidth( (SpinnerAdapter) mAdapter, getBackground()); final int contentWidthLimit = mContext.getResources() .getDisplayMetrics().widthPixels - mTempRect.left - mTempRect.right; if (contentWidth > contentWidthLimit) { contentWidth = contentWidthLimit; } setContentWidth(Math.max( setContentWidth(Math.max( measureContentWidth((SpinnerAdapter) mAdapter, getBackground()), contentWidth, spinnerWidth - spinnerPaddingLeft - spinnerPaddingRight)); spinnerWidth - spinnerPaddingLeft - spinnerPaddingRight)); } else if (mDropDownWidth == MATCH_PARENT) { } else if (mDropDownWidth == MATCH_PARENT) { final int spinnerWidth = Spinner.this.getWidth(); final int spinnerWidth = Spinner.this.getWidth(); final int spinnerPaddingRight = Spinner.this.getPaddingRight(); final int spinnerPaddingRight = Spinner.this.getPaddingRight(); Loading @@ -746,12 +764,6 @@ public class Spinner extends AbsSpinner implements OnClickListener { } else { } else { setContentWidth(mDropDownWidth); setContentWidth(mDropDownWidth); } } final Drawable background = getBackground(); int bgOffset = 0; if (background != null) { background.getPadding(mTempRect); bgOffset = -mTempRect.left; } setHorizontalOffset(bgOffset + spinnerPaddingLeft); setHorizontalOffset(bgOffset + spinnerPaddingLeft); setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED); setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED); super.show(); super.show(); Loading