diff options
| author | Adam Powell <adamp@google.com> | 2011-01-19 17:58:04 -0800 |
|---|---|---|
| committer | Adam Powell <adamp@google.com> | 2011-01-19 21:09:43 -0800 |
| commit | 5f83a6017bacb513610df83a36b1f55953e65ad4 (patch) | |
| tree | 4ac548197c8d95afb076dc2bfdefc6870e4a651d /core/java/android/widget/Spinner.java | |
| parent | ed58d8ed8a50cbd8c5e01c4e51bcbbe4341d1dfd (diff) | |
Better fix for bug 3112733
Make sure PopupWindows set to clip to the screen and that are anchored
to another view do not clip off the top of the screen.
Change-Id: I6ef9d61982dfda18a4ee7c69128932f5e08aa884
Diffstat (limited to 'core/java/android/widget/Spinner.java')
| -rw-r--r-- | core/java/android/widget/Spinner.java | 36 |
1 files changed, 1 insertions, 35 deletions
diff --git a/core/java/android/widget/Spinner.java b/core/java/android/widget/Spinner.java index e38a69fde005..0baddcb97501 100644 --- a/core/java/android/widget/Spinner.java +++ b/core/java/android/widget/Spinner.java @@ -23,14 +23,13 @@ import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.res.TypedArray; import android.database.DataSetObserver; -import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.graphics.Rect; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; -import android.view.ViewTreeObserver; /** @@ -70,8 +69,6 @@ public class Spinner extends AbsSpinner implements OnClickListener { private int mGravity; - private LayoutObserver mLayoutObserver; - /** * Construct a new spinner with the given context's theme. * @@ -172,7 +169,6 @@ public class Spinner extends AbsSpinner implements OnClickListener { com.android.internal.R.styleable.Spinner_dropDownHorizontalOffset, 0)); mPopup = popup; - mLayoutObserver = new LayoutObserver(); break; } } @@ -425,11 +421,6 @@ public class Spinner extends AbsSpinner implements OnClickListener { handled = true; if (!mPopup.isShowing()) { - if (mLayoutObserver != null) { - final ViewTreeObserver vto = getViewTreeObserver(); - vto.addOnGlobalLayoutListener(mLayoutObserver); - vto.addOnScrollChangedListener(mLayoutObserver); - } mPopup.show(); } } @@ -677,7 +668,6 @@ public class Spinner extends AbsSpinner implements OnClickListener { super.show(); getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); setSelection(Spinner.this.getSelectedItemPosition()); - setOnDismissListener(mLayoutObserver); } @Override @@ -728,28 +718,4 @@ public class Spinner extends AbsSpinner implements OnClickListener { ViewGroup.LayoutParams.WRAP_CONTENT); } } - - private class LayoutObserver implements ViewTreeObserver.OnGlobalLayoutListener, - ViewTreeObserver.OnScrollChangedListener, PopupWindow.OnDismissListener { - @Override - public void onScrollChanged() { - if (mPopup != null && mPopup.isShowing()) { - mPopup.show(); - } - } - - @Override - public void onGlobalLayout() { - if (mPopup != null && mPopup.isShowing()) { - mPopup.show(); - } - } - - @Override - public void onDismiss() { - ViewTreeObserver vto = getViewTreeObserver(); - vto.removeGlobalOnLayoutListener(mLayoutObserver); - vto.removeOnScrollChangedListener(mLayoutObserver); - } - } } |
