diff --git a/api/current.txt b/api/current.txt index be011123e549a..01ca77a401e67 100644 --- a/api/current.txt +++ b/api/current.txt @@ -40635,6 +40635,7 @@ package android.widget { method public void setSoftInputMode(int); method public void setVerticalOffset(int); method public void setWidth(int); + method public void setWindowLayoutType(int); method public void show(); field public static final int INPUT_METHOD_FROM_FOCUSABLE = 0; // 0x0 field public static final int INPUT_METHOD_NEEDED = 1; // 0x1 diff --git a/api/system-current.txt b/api/system-current.txt index c4f96afed3553..212b5e8e92558 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -43156,6 +43156,7 @@ package android.widget { method public void setSoftInputMode(int); method public void setVerticalOffset(int); method public void setWidth(int); + method public void setWindowLayoutType(int); method public void show(); field public static final int INPUT_METHOD_FROM_FOCUSABLE = 0; // 0x0 field public static final int INPUT_METHOD_NEEDED = 1; // 0x1 diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java index 35e73892a6ead..db48dd3d8b92e 100644 --- a/core/java/android/widget/Editor.java +++ b/core/java/android/widget/Editor.java @@ -2422,7 +2422,8 @@ public class Editor { public PinnedPopupWindow() { createPopupWindow(); - mPopupWindow.setWindowLayoutType(WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL); + mPopupWindow.setWindowLayoutType( + WindowManager.LayoutParams.TYPE_APPLICATION_ABOVE_SUB_PANEL); mPopupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT); mPopupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); diff --git a/core/java/android/widget/ListPopupWindow.java b/core/java/android/widget/ListPopupWindow.java index 310412f9ba02e..05866f07f9a9b 100644 --- a/core/java/android/widget/ListPopupWindow.java +++ b/core/java/android/widget/ListPopupWindow.java @@ -39,6 +39,7 @@ import android.view.View.OnTouchListener; import android.view.ViewConfiguration; import android.view.ViewGroup; import android.view.ViewParent; +import android.view.WindowManager; import android.view.animation.AccelerateDecelerateInterpolator; import com.android.internal.R; @@ -77,6 +78,7 @@ public class ListPopupWindow { private int mDropDownWidth = ViewGroup.LayoutParams.WRAP_CONTENT; private int mDropDownHorizontalOffset; private int mDropDownVerticalOffset; + private int mDropDownWindowLayoutType = WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL; private boolean mDropDownVerticalOffsetSet; private int mDropDownGravity = Gravity.NO_GRAVITY; @@ -514,6 +516,19 @@ public class ListPopupWindow { mDropDownHeight = height; } + /** + * Set the layout type for this popup window. + *

+ * See {@link WindowManager.LayoutParams#type} for possible values. + * + * @param layoutType Layout type for this window. + * + * @see WindowManager.LayoutParams#type + */ + public void setWindowLayoutType(int layoutType) { + mDropDownWindowLayoutType = layoutType; + } + /** * Sets a listener to receive events when a list item is clicked. * @@ -567,8 +582,9 @@ public class ListPopupWindow { public void show() { int height = buildDropDown(); - boolean noInputMethod = isInputMethodNotNeeded(); + final boolean noInputMethod = isInputMethodNotNeeded(); mPopup.setAllowScrollingAnchorParent(!noInputMethod); + mPopup.setWindowLayoutType(mDropDownWindowLayoutType); if (mPopup.isShowing()) { final int widthSpec; diff --git a/core/java/android/widget/PopupWindow.java b/core/java/android/widget/PopupWindow.java index c3ac278760f8d..b4cbf35ac60e4 100644 --- a/core/java/android/widget/PopupWindow.java +++ b/core/java/android/widget/PopupWindow.java @@ -829,9 +829,9 @@ public class PopupWindow { } /** - * Set the layout type for this window. This value will be passed through to - * {@link WindowManager.LayoutParams#type} therefore the value should match any value - * {@link WindowManager.LayoutParams#type} accepts. + * Set the layout type for this window. + *

+ * See {@link WindowManager.LayoutParams#type} for possible values. * * @param layoutType Layout type for this window. *