public class ListPopupWindow
extends Object
implements ShowableListMenu
java.lang.Object | |
↳ | android.widget.ListPopupWindow |
ListPopupWindow将自己锚定到主机视图并显示选项列表。
ListPopupWindow包含许多围绕定位的棘手行为,滚动父母以适应下拉列表,与IME(如果存在的话)以及其他人进行明智的交互。
也可以看看:
Constants |
|
---|---|
int |
INPUT_METHOD_FROM_FOCUSABLE
|
int |
INPUT_METHOD_NEEDED
|
int |
INPUT_METHOD_NOT_NEEDED
|
int |
MATCH_PARENT 别名为 |
int |
POSITION_PROMPT_ABOVE 提供的提示视图应该出现在列表内容的上方。 |
int |
POSITION_PROMPT_BELOW 提供的提示视图应显示在列表内容的下方。 |
int |
WRAP_CONTENT 别名为 |
Public constructors |
|
---|---|
ListPopupWindow(Context context) 创建一个新的空的弹出窗口,能够显示来自ListAdapter的项目。 |
|
ListPopupWindow(Context context, AttributeSet attrs) 创建一个新的空的弹出窗口,能够显示来自ListAdapter的项目。 |
|
ListPopupWindow(Context context, AttributeSet attrs, int defStyleAttr) 创建一个新的空的弹出窗口,能够显示来自ListAdapter的项目。 |
|
ListPopupWindow(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) 创建一个新的空的弹出窗口,能够显示来自ListAdapter的项目。 |
Public methods |
|
---|---|
void |
clearListSelection() 清除任何当前列表选择。 |
View.OnTouchListener |
createDragToOpenListener(View src) 返回可添加到源视图的 |
void |
dismiss() 关闭弹出窗口。 |
View |
getAnchorView() 返回将用于锚定此弹出窗口的视图。 |
int |
getAnimationStyle() 返回弹出窗口显示或解除时将使用的动画样式。 |
Drawable |
getBackground() |
int |
getHeight() |
int |
getHorizontalOffset() |
int |
getInputMethodMode() 返回 |
ListView |
getListView() |
int |
getPromptPosition() |
Object |
getSelectedItem() |
long |
getSelectedItemId() |
int |
getSelectedItemPosition() |
View |
getSelectedView() |
int |
getSoftInputMode() 返回 |
int |
getVerticalOffset() |
int |
getWidth() |
boolean |
isInputMethodNotNeeded() |
boolean |
isModal() 返回显示时弹出窗口是否为模态。 |
boolean |
isShowing() |
boolean |
onKeyDown(int keyCode, KeyEvent event) 过滤关键事件。 |
boolean |
onKeyPreIme(int keyCode, KeyEvent event) 过滤IME前的关键事件。 |
boolean |
onKeyUp(int keyCode, KeyEvent event) 过滤关键事件。 |
boolean |
performItemClick(int position) 在指定的列表适配器位置上执行项目单击操作。 |
void |
postShow() 发布 |
void |
setAdapter(ListAdapter adapter) 设置提供数据的适配器和视图来表示这个弹出窗口中的数据。 |
void |
setAnchorView(View anchor) 设置弹出的锚点视图。 |
void |
setAnimationStyle(int animationStyle) 设置弹出窗口显示或解除时使用的动画样式。 |
void |
setBackgroundDrawable(Drawable d) 将drawable设置为弹出窗口的背景。 |
void |
setContentWidth(int width) 通过其内容的大小来设置弹出窗口的宽度。 |
void |
setDropDownGravity(int gravity) 设置下拉列表的重力。 |
void |
setHeight(int height) 以像素为单位设置弹出窗口的高度。 |
void |
setHorizontalOffset(int offset) 从其锚点视图中以像素为单位设置此弹出框的水平偏移量。 |
void |
setInputMethodMode(int mode) 控制如何的弹出与输入方法工作:之一 |
void |
setListSelector(Drawable selector) 设置一个drawable用作列表项目选择器。 |
void |
setModal(boolean modal) 设置此窗口在显示时是否应为模态。 |
void |
setOnDismissListener(PopupWindow.OnDismissListener listener) 设置一个监听器,当弹出框被解除时接收回调。 |
void |
setOnItemClickListener(AdapterView.OnItemClickListener clickListener) 设置侦听器以在单击列表项时接收事件。 |
void |
setOnItemSelectedListener(AdapterView.OnItemSelectedListener selectedListener) 设置侦听器以在选择列表项目时接收事件。 |
void |
setPromptPosition(int position) 设置可选提示视图应显示的位置。 |
void |
setPromptView(View prompt) 设置视图以充当此弹出窗口的用户提示。 |
void |
setSelection(int position) 设置列表的选定位置。 |
void |
setSoftInputMode(int mode) 设置软输入区域的操作模式。 |
void |
setVerticalOffset(int offset) 从其锚点视图中以像素为单位设置此弹出窗口的垂直偏移量。 |
void |
setWidth(int width) 设置弹出窗口的宽度(以像素为单位)。 |
void |
setWindowLayoutType(int layoutType) 为此弹出窗口设置布局类型。 |
void |
show() 显示弹出列表。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
|
From interface com.android.internal.view.menu.ShowableListMenu
|
int INPUT_METHOD_FROM_FOCUSABLE
针对setInputMethodMode(int)
模式:输入法的要求应基于弹出框的可聚焦性。 这就是说,如果它是可以聚焦的而不是它需要使用输入法,否则它不会。
常量值:0(0x00000000)
int INPUT_METHOD_NEEDED
setInputMethodMode(int)
模式:此弹出窗口总是需要使用输入法,无论它是否可以聚焦。 这意味着它将始终显示,以便用户在显示时也可以操作输入法。
常数值:1(0x00000001)
int INPUT_METHOD_NOT_NEEDED
setInputMethodMode(int)
模式:此弹出窗口不需要使用输入法,无论它是否可以聚焦。 这意味着它将始终显示为根据需要在屏幕上使用尽可能多的空间,而不管这是否覆盖了输入法。
常量值:2(0x00000002)
int MATCH_PARENT
别名为MATCH_PARENT
。 如果用于指定弹出宽度,则弹出窗口将匹配锚视图的宽度。 如果用于指定弹出高度,则弹出窗口将填充可用空间。
常量值:-1(0xffffffff)
int POSITION_PROMPT_ABOVE
提供的提示视图应该出现在列表内容的上方。
常量值:0(0x00000000)
int POSITION_PROMPT_BELOW
提供的提示视图应显示在列表内容的下方。
常数值:1(0x00000001)
int WRAP_CONTENT
别名为WRAP_CONTENT
。 如果用于指定弹出宽度,则弹出窗口将使用其内容的宽度。
常量值:-2(0xfffffffe)
ListPopupWindow (Context context)
创建一个新的空的弹出窗口,能够显示来自ListAdapter的项目。 应使用setBackgroundDrawable(Drawable)
设置背景。
Parameters | |
---|---|
context |
Context : Context used for contained views. |
ListPopupWindow (Context context, AttributeSet attrs)
创建一个新的空的弹出窗口,能够显示来自ListAdapter的项目。 背景应使用setBackgroundDrawable(Drawable)
设置。
Parameters | |
---|---|
context |
Context : Context used for contained views. |
attrs |
AttributeSet : Attributes from inflating parent views used to style the popup. |
ListPopupWindow (Context context, AttributeSet attrs, int defStyleAttr)
创建一个新的空的弹出窗口,能够显示来自ListAdapter的项目。 应使用setBackgroundDrawable(Drawable)
设置背景。
Parameters | |
---|---|
context |
Context : Context used for contained views. |
attrs |
AttributeSet : Attributes from inflating parent views used to style the popup. |
defStyleAttr |
int : Default style attribute to use for popup content. |
ListPopupWindow (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
创建一个新的空的弹出窗口,能够显示来自ListAdapter的项目。 应使用setBackgroundDrawable(Drawable)
设置背景。
Parameters | |
---|---|
context |
Context : Context used for contained views. |
attrs |
AttributeSet : Attributes from inflating parent views used to style the popup. |
defStyleAttr |
int : Style attribute to read for default styling of popup content. |
defStyleRes |
int : Style resource ID to use for default styling of popup content. |
void clearListSelection ()
清除任何当前列表选择。 isShowing()
== true
时才有效。
View.OnTouchListener createDragToOpenListener (View src)
返回可添加到源视图以实现拖动打开行为的View.OnTouchListener
。 一般来说,源视图应该是传递给setAnchorView(View)
的相同视图。
将侦听器设置在视图上时,触摸该视图并在其边界之外拖动将打开弹出窗口。 提升将选择当前触摸的列表项目。
用法示例:
ListPopupWindow myPopup = new ListPopupWindow(context); myPopup.setAnchor(myAnchor); OnTouchListener dragListener = myPopup.createDragToOpenListener(myAnchor); myAnchor.setOnTouchListener(dragListener);
Parameters | |
---|---|
src |
View : the view on which the resulting listener will be set |
Returns | |
---|---|
View.OnTouchListener |
a touch listener that controls drag-to-open behavior |
View getAnchorView ()
返回将用于锚定此弹出窗口的视图。
Returns | |
---|---|
View |
The popup's anchor view |
int getAnimationStyle ()
返回弹出窗口显示或解除时将使用的动画样式。
Returns | |
---|---|
int |
Animation style that will be used. |
Drawable getBackground ()
Returns | |
---|---|
Drawable |
The background drawable for the popup window. |
int getHeight ()
Returns | |
---|---|
int |
The height of the popup window in pixels. |
int getHorizontalOffset ()
Returns | |
---|---|
int |
The horizontal offset of the popup from its anchor in pixels. |
int getInputMethodMode ()
返回 setInputMethodMode(int)
的当前值。
Returns | |
---|---|
int |
也可以看看:
ListView getListView ()
Returns | |
---|---|
ListView |
The ListView displayed within the popup window. Only valid when isShowing() == true . |
int getPromptPosition ()
Returns | |
---|---|
int |
Where the optional prompt view should appear. |
Object getSelectedItem ()
Returns | |
---|---|
Object |
The currently selected item or null if the popup is not showing. |
long getSelectedItemId ()
Returns | |
---|---|
long |
The ID of the currently selected item or INVALID_ROW_ID if isShowing() == false . |
也可以看看:
int getSelectedItemPosition ()
Returns | |
---|---|
int |
The position of the currently selected item or INVALID_POSITION if isShowing() == false . |
也可以看看:
View getSelectedView ()
Returns | |
---|---|
View |
The View for the currently selected item or null if isShowing() == false . |
也可以看看:
int getSoftInputMode ()
返回 setSoftInputMode(int)
中的当前值。
Returns | |
---|---|
int |
See also:
int getVerticalOffset ()
Returns | |
---|---|
int |
The vertical offset of the popup from its anchor in pixels. |
boolean isInputMethodNotNeeded ()
Returns | |
---|---|
boolean |
true if this popup is configured to assume the user does not need to interact with the IME while it is showing, false otherwise. |
boolean isModal ()
返回显示时弹出窗口是否为模态。
Returns | |
---|---|
boolean |
true if the popup window will be modal, false otherwise. |
boolean isShowing ()
Returns | |
---|---|
boolean |
true if the popup is currently showing, false otherwise. |
boolean onKeyDown (int keyCode, KeyEvent event)
过滤关键事件。 通过将关键事件转发给此函数,使用非模式ListPopupWindow的视图可以让它处理项目的关键选择。
Parameters | |
---|---|
keyCode |
int : keyCode param passed to the host view's onKeyDown |
event |
KeyEvent : event param passed to the host view's onKeyDown |
Returns | |
---|---|
boolean |
true if the event was handled, false if it was ignored. |
boolean onKeyPreIme (int keyCode, KeyEvent event)
过滤IME前的关键事件。 通过将onKeyPreIme(int, KeyEvent)
事件转发给此函数,使用ListPopupWindow的视图可以在按下后退键时关闭弹出窗口。
Parameters | |
---|---|
keyCode |
int : keyCode param passed to the host view's onKeyPreIme |
event |
KeyEvent : event param passed to the host view's onKeyPreIme |
Returns | |
---|---|
boolean |
true if the event was handled, false if it was ignored. |
也可以看看:
boolean onKeyUp (int keyCode, KeyEvent event)
过滤关键事件。 通过将关键事件转发给此函数,使用非模式ListPopupWindow的视图可以让它处理项目的关键选择。
Parameters | |
---|---|
keyCode |
int : keyCode param passed to the host view's onKeyUp |
event |
KeyEvent : event param passed to the host view's onKeyUp |
Returns | |
---|---|
boolean |
true if the event was handled, false if it was ignored. |
boolean performItemClick (int position)
在指定的列表适配器位置上执行项目单击操作。
Parameters | |
---|---|
position |
int : Adapter position for performing the click |
Returns | |
---|---|
boolean |
true if the click action could be performed, false if not. (e.g. if the popup was not showing, this method would return false.) |
void setAdapter (ListAdapter adapter)
设置提供数据的适配器和视图来表示这个弹出窗口中的数据。
Parameters | |
---|---|
adapter |
ListAdapter : The adapter to use to create this window's content. |
void setAnchorView (View anchor)
设置弹出的锚点视图。 显示时,此弹出窗口将始终相对于锚点视图进行定位。
Parameters | |
---|---|
anchor |
View : The view to use as an anchor. |
void setAnimationStyle (int animationStyle)
设置弹出窗口显示或解除时使用的动画样式。
Parameters | |
---|---|
animationStyle |
int : Animation style to use. |
void setBackgroundDrawable (Drawable d)
将drawable设置为弹出窗口的背景。
Parameters | |
---|---|
d |
Drawable : A drawable to set as the background. |
void setContentWidth (int width)
通过其内容的大小来设置弹出窗口的宽度。 最终的宽度可能更大,以适应风格的窗饰。
Parameters | |
---|---|
width |
int : Desired width of content in pixels. |
void setDropDownGravity (int gravity)
设置下拉列表的重力。 这通常用于将重力设置为START或END以便与锚点对齐。
Parameters | |
---|---|
gravity |
int : Gravity value to use |
void setHeight (int height)
以像素为单位设置弹出窗口的高度。 也可以是MATCH_PARENT
。
Parameters | |
---|---|
height |
int : Height of the popup window. |
void setHorizontalOffset (int offset)
从其锚点视图中以像素为单位设置此弹出框的水平偏移量。
Parameters | |
---|---|
offset |
int : The horizontal offset of the popup from its anchor. |
void setInputMethodMode (int mode)
控制如何的弹出与输入方法工作:之一 INPUT_METHOD_FROM_FOCUSABLE
, INPUT_METHOD_NEEDED
,或 INPUT_METHOD_NOT_NEEDED
。
如果弹出窗口显示,调用此方法仅在下次显示弹出窗口或通过手动调用 show()
方法时 show()
。
Parameters | |
---|---|
mode |
int
|
也可以看看:
void setListSelector (Drawable selector)
设置一个drawable用作列表项目选择器。
Parameters | |
---|---|
selector |
Drawable : List selector drawable to use in the popup. |
void setModal (boolean modal)
设置此窗口在显示时是否应为模态。
如果一个弹出窗口是模态的,它将接收所有的触摸和键输入。 如果用户触摸弹出窗口的内容区域,则弹出窗口将被解除。
Parameters | |
---|---|
modal |
boolean : true if the popup window should be modal, false otherwise. |
void setOnDismissListener (PopupWindow.OnDismissListener listener)
设置一个监听器,当弹出框被解除时接收回调。
Parameters | |
---|---|
listener |
PopupWindow.OnDismissListener : Listener that will be notified when the popup is dismissed. |
void setOnItemClickListener (AdapterView.OnItemClickListener clickListener)
设置侦听器以在单击列表项时接收事件。
Parameters | |
---|---|
clickListener |
AdapterView.OnItemClickListener : Listener to register |
void setOnItemSelectedListener (AdapterView.OnItemSelectedListener selectedListener)
设置侦听器以在选择列表项目时接收事件。
Parameters | |
---|---|
selectedListener |
AdapterView.OnItemSelectedListener : Listener to register. |
void setPromptPosition (int position)
设置可选提示视图应显示的位置。 默认值是POSITION_PROMPT_ABOVE
。
Parameters | |
---|---|
position |
int : A position constant declaring where the prompt should be displayed. |
void setPromptView (View prompt)
设置视图以充当此弹出窗口的用户提示。 提示视图出现的位置由setPromptPosition(int)
控制。
Parameters | |
---|---|
prompt |
View : View to use as an informational prompt. |
void setSelection (int position)
设置列表的选定位置。 isShowing()
== true
时才有效。
Parameters | |
---|---|
position |
int : List position to set as selected. |
void setSoftInputMode (int mode)
设置软输入区域的操作模式。
Parameters | |
---|---|
mode |
int : The desired mode, see softInputMode for the full list |
也可以看看:
void setVerticalOffset (int offset)
从其锚点视图中以像素为单位设置此弹出窗口的垂直偏移量。
Parameters | |
---|---|
offset |
int : The vertical offset of the popup from its anchor. |
void setWidth (int width)
设置弹出窗口的宽度(以像素为单位)。 也可以是MATCH_PARENT
或WRAP_CONTENT
。
Parameters | |
---|---|
width |
int : Width of the popup window. |
void setWindowLayoutType (int layoutType)
为此弹出窗口设置布局类型。
有关可能的值,请参阅 type
。
Parameters | |
---|---|
layoutType |
int : Layout type for this window. |
也可以看看: