diff options
| author | 2017-04-05 15:22:10 -0700 | |
|---|---|---|
| committer | 2017-04-05 22:24:13 +0000 | |
| commit | adf08d4eb9de23a3f5ebff681f48bce6ab5b645a (patch) | |
| tree | b8768562998572c29d5945d7333ed97212b73acf | |
| parent | f68766f6667cbda60aab4c6fef5254a4d63baa03 (diff) | |
Fix anchor overlap handling in ListPopupWindow
Do not change anchor overlap on the underlying
PopupWindow unless ListPopupWindow.setOverlapAnchor
has been called explicitly.
Bug: 36714649
Test: ApiDemos > Views > Spinner
Change-Id: I5e66d4409a1f04cdc0fbe64e255609836c2b0e95
| -rw-r--r-- | core/java/android/widget/ListPopupWindow.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/core/java/android/widget/ListPopupWindow.java b/core/java/android/widget/ListPopupWindow.java index ab4cce479005..2e8faeec6f13 100644 --- a/core/java/android/widget/ListPopupWindow.java +++ b/core/java/android/widget/ListPopupWindow.java @@ -76,6 +76,7 @@ public class ListPopupWindow implements ShowableListMenu { private boolean mDropDownVerticalOffsetSet; private boolean mIsAnimatedFromAnchor = true; private boolean mOverlapAnchor; + private boolean mOverlapAnchorSet; private int mDropDownGravity = Gravity.NO_GRAVITY; @@ -681,7 +682,9 @@ public class ListPopupWindow implements ShowableListMenu { mPopup.setOutsideTouchable(!mForceIgnoreOutsideTouch && !mDropDownAlwaysVisible); mPopup.setTouchInterceptor(mTouchInterceptor); mPopup.setEpicenterBounds(mEpicenterBounds); - mPopup.setOverlapAnchor(mOverlapAnchor); + if (mOverlapAnchorSet) { + mPopup.setOverlapAnchor(mOverlapAnchor); + } mPopup.showAsDropDown(getAnchorView(), mDropDownHorizontalOffset, mDropDownVerticalOffset, mDropDownGravity); mDropDownList.setSelection(ListView.INVALID_POSITION); @@ -1259,6 +1262,7 @@ public class ListPopupWindow implements ShowableListMenu { * @hide */ public void setOverlapAnchor(boolean overlap) { + mOverlapAnchorSet = true; mOverlapAnchor = overlap; } |