ListPopupWindow should use window layout type SUB_PANEL
Look down, back up, where are you? You're in a dialog with an AutoCompleteTextView. What's on your screen? I have it, it's the auto-completion results you could be seeing. Look again. The window layout type is now TYPE_APPLICATION_SUB_PANEL and the auto-completion results are visible. Also adds API on ListPopupWindow to specify the window layout type and changes the text editing handle to be type ABOVE_SUB_PANEL. Bug: 18530738 Change-Id: Id5577c4892729920de5b73411e580e6b2b2401d0
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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.
|
||||
* <p>
|
||||
* 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;
|
||||
|
||||
@@ -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.
|
||||
* <p>
|
||||
* See {@link WindowManager.LayoutParams#type} for possible values.
|
||||
*
|
||||
* @param layoutType Layout type for this window.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user