summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vladislav Kaznacheev <kaznacheev@google.com> 2017-04-05 15:22:10 -0700
committer Vladislav Kaznacheev <kaznacheev@google.com> 2017-04-05 22:24:13 +0000
commitadf08d4eb9de23a3f5ebff681f48bce6ab5b645a (patch)
treeb8768562998572c29d5945d7333ed97212b73acf
parentf68766f6667cbda60aab4c6fef5254a4d63baa03 (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.java6
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;
}