Most visited

Recently visited

Added in API level 1

PopupWindow

public class PopupWindow
extends Object

java.lang.Object
   ↳ android.widget.PopupWindow


这个类表示一个可用于显示任意视图的弹出窗口。 弹出窗口是一个浮动容器,显示在当前活动的顶部。

Animation

在Android的所有版本中,可以通过调用setAnimationStyle(int)并传递用于定义windowEnterAnimationwindowExitAnimation的动画样式的资源ID来指定弹出窗口输入和退出动画。 例如,传递Animation_Dialog会给出一个比例和alpha动画。
窗口动画风格也可以通过popupAnimationStyle属性在弹出窗口的样式XML中指定。

从API 23开始,可以通过调用setEnterTransition(Transition)setExitTransition(Transition)并传递Transition来指定更复杂的弹出窗口进入和退出转换。
弹出窗口的输入和退出转换也可以分别通过popupEnterTransitionpopupExitTransition属性在弹出窗口的样式XML中指定。

也可以看看:

Summary

Nested classes

interface PopupWindow.OnDismissListener

当这个弹出窗口被解除时被调用的监听器。

XML attributes

android:overlapAnchor Whether the popup window should overlap its anchor view. 
android:popupAnimationStyle The animation style to use for the popup window. 
android:popupBackground The background to use for the popup window. 
android:popupElevation Window elevation to use for the popup window. 
android:popupEnterTransition Transition used to move views into the popup window. 
android:popupExitTransition Transition used to move views out of the popup window. 

Constants

int INPUT_METHOD_FROM_FOCUSABLE

适用于 setInputMethodMode(int)模式:输入法的要求应基于弹出窗的可聚焦性。

int INPUT_METHOD_NEEDED

setInputMethodMode(int)模式:此弹出窗口总是需要使用输入法,无论它是否可以调焦。

int INPUT_METHOD_NOT_NEEDED

setInputMethodMode(int)模式:此弹出窗口不需要使用输入法,无论它是否可调焦。

Public constructors

PopupWindow(Context context)

创建一个新的空的,不可聚焦的维(0,0)弹出窗口。

PopupWindow(Context context, AttributeSet attrs)

创建一个新的空的,不可聚焦的维(0,0)弹出窗口。

PopupWindow(Context context, AttributeSet attrs, int defStyleAttr)

创建一个新的空的,不可聚焦的维(0,0)弹出窗口。

PopupWindow(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

创建一个新的,空的,不可聚焦的维度(0,0)弹出窗口。

PopupWindow()

创建一个新的空的,不可聚焦的维(0,0)弹出窗口。

PopupWindow(View contentView)

创建一个新的不可聚焦的弹出窗口,可以显示 contentView

PopupWindow(int width, int height)

创建一个新的空的,不可调焦的弹出窗口。

PopupWindow(View contentView, int width, int height)

创建一个新的不可聚焦的弹出窗口,可以显示 contentView

PopupWindow(View contentView, int width, int height, boolean focusable)

创建一个新的弹出窗口,可以显示 contentView

Public methods

void dismiss()

处理弹出窗口。

int getAnimationStyle()

返回动画风格以使用弹出窗口并消失

Drawable getBackground()

返回用作弹出窗口背景的绘图。

View getContentView()

返回用作弹出窗口内容的视图。

float getElevation()
Transition getEnterTransition()

返回显示弹出窗口时要使用的输入转换。

Transition getExitTransition()

返回在弹出窗口关闭时要使用的退出转换。

int getHeight()

返回弹出窗口的请求高度。

int getInputMethodMode()

返回 setInputMethodMode(int)的当前值。

int getMaxAvailableHeight(View anchor)

返回弹出窗口完全显示的最大高度。

int getMaxAvailableHeight(View anchor, int yOffset)

返回弹出窗口完全显示的最大高度。

int getMaxAvailableHeight(View anchor, int yOffset, boolean ignoreBottomDecorations)

返回可用于完全显示弹出框的最大高度,可以忽略任何底部装饰,如输入法。

boolean getOverlapAnchor()

当显示为下拉菜单时,返回弹出窗口是否应该与其锚点视图重叠。

int getSoftInputMode()

返回 setSoftInputMode(int)中的当前值。

int getWidth()

返回弹出窗口的请求宽度。

int getWindowLayoutType()

返回此窗口的布局类型。

boolean isAboveAnchor()

指示弹出窗口是否在上方显示(弹出窗口底部的y坐标小于锚点的y坐标)或低于锚点视图(弹出窗口的y坐标大于锚点底部的y坐标)。

boolean isAttachedInDecor()

指示是否将弹出窗口附加到其父窗口的装饰框中。

boolean isClippingEnabled()

指示是否启用弹出窗口的剪辑。

boolean isFocusable()

指出弹出窗口是否可以抓住焦点。

boolean isOutsideTouchable()

指示是否将弹出窗口通知其窗口外的触摸事件。

boolean isShowing()

指示此弹出窗口是否显示在屏幕上。

boolean isSplitTouchEnabled()

指示弹出窗口是否支持拆分触摸。

boolean isTouchable()

指示弹出窗口是否接收触摸事件。

void setAnimationStyle(int animationStyle)

更改此弹出窗口的动画样式资源。

void setAttachedInDecor(boolean enabled)

这会将弹出窗口附加到父窗口的装饰框,以避免与导航栏等屏幕装饰重叠。

void setBackgroundDrawable(Drawable background)

指定此弹出窗口的背景可绘制。

void setClippingEnabled(boolean enabled)

允许弹出窗口延伸到屏幕的边界之外。

void setContentView(View contentView)

更改弹出窗口的内容。

void setElevation(float elevation)

指定此弹出窗口的高程。

void setEnterTransition(Transition enterTransition)

设置显示弹出窗口时要使用的输入转换。

void setExitTransition(Transition exitTransition)

设置撤销弹出窗口时要使用的退出转换。

void setFocusable(boolean focusable)

更改弹出窗口的可聚焦性。

void setHeight(int height)

设置弹出窗口的请求高度。

void setIgnoreCheekPress()

在弹出窗口上设置标志以忽略面颊新闻事件; 默认情况下这个标志被设置为false,这意味着弹出窗口不会忽略脸颊压力派发事件。

void setInputMethodMode(int mode)

控制如何的弹出与输入方法工作:之一 INPUT_METHOD_FROM_FOCUSABLEINPUT_METHOD_NEEDED ,或 INPUT_METHOD_NOT_NEEDED

void setOnDismissListener(PopupWindow.OnDismissListener onDismissListener)

设置窗口关闭时调用的侦听器。

void setOutsideTouchable(boolean touchable)

控制弹出窗口是否会被通知触摸事件。

void setOverlapAnchor(boolean overlapAnchor)

显示为下拉菜单时,设置弹出窗口是否应与其锚点视图重叠。

void setSoftInputMode(int mode)

设置软输入区域的操作模式。

void setSplitTouchEnabled(boolean enabled)

允许弹出窗口在其他也支持分割触摸的窗口之间分割触摸。

void setTouchInterceptor(View.OnTouchListener l)

为分派到弹出窗口的所有触摸事件设置回调。

void setTouchable(boolean touchable)

更改弹出窗口的可触摸性。

void setWidth(int width)

设置弹出窗口的请求宽度。

void setWindowLayoutMode(int widthSpec, int heightSpec)

此方法在API级别23中已弃用。请使用setWidth(int)setHeight(int)

void setWindowLayoutType(int layoutType)

为此窗口设置布局类型。

void showAsDropDown(View anchor)

在锚定视图左下角的弹出窗口中显示内容视图。

void showAsDropDown(View anchor, int xoff, int yoff, int gravity)

在固定在另一个视图角落的弹出窗口中显示内容视图。

void showAsDropDown(View anchor, int xoff, int yoff)

在一个弹出窗口中显示内容视图,该窗口通过指定的x和y坐标偏移到锚点视图的左下角。

void showAtLocation(View parent, int gravity, int x, int y)

在指定位置的弹出窗口中显示内容视图。

void update(View anchor, int width, int height)

更新弹出窗口的位置和尺寸。

void update(View anchor, int xoff, int yoff, int width, int height)

更新弹出窗口的位置和尺寸。

void update(int width, int height)

更新弹出窗口的尺寸。

void update()

如果弹出窗口当前正在显示,则从当前设置的状态更新弹出窗口的状态。

void update(int x, int y, int width, int height, boolean force)

更新弹出窗口的位置和尺寸。

void update(int x, int y, int width, int height)

更新弹出窗口的位置和尺寸。

Inherited methods

From class java.lang.Object

XML attributes

android:overlapAnchor

弹出窗口是否应该与其锚点视图重叠。

必须是布尔值,可以是“ true ”或“ false ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 overlapAnchor

android:popupAnimationStyle

用于弹出窗口的动画样式。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 popupAnimationStyle

android:popupBackground

用于弹出窗口的背景。

可能是对其他资源的引用,形式为“ @[+][package:]type:name ”,也可能是“ ?[package:][type:]name ”形式的主题属性。

可以是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”形式的颜色值。

这对应于全局属性资源符号 popupBackground

相关方法:

android:popupElevation

用于弹出窗口的窗口高程。

必须是一个维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 popupElevation

相关方法:

android:popupEnterTransition

用于将视图移动到弹出窗口的转换。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 popupEnterTransition

相关方法:

android:popupExitTransition

Transition用于将视图移出弹出窗口。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 popupExitTransition

相关方法:

Constants

INPUT_METHOD_FROM_FOCUSABLE

Added in API level 3
int INPUT_METHOD_FROM_FOCUSABLE

适用于setInputMethodMode(int)模式:输入方法的要求应基于弹出框的可聚焦性。 这就是说,如果它是可以聚焦的而不是它需要使用输入法,否则它不会。

常量值:0(0x00000000)

INPUT_METHOD_NEEDED

Added in API level 3
int INPUT_METHOD_NEEDED

setInputMethodMode(int)模式:此弹出窗口始终需要使用输入法,而不管它是否可调焦。 这意味着它将始终显示,以便用户在显示时也可以操作输入法。

常数值:1(0x00000001)

INPUT_METHOD_NOT_NEEDED

Added in API level 3
int INPUT_METHOD_NOT_NEEDED

setInputMethodMode(int)模式:此弹出窗口不需要使用输入法,无论它是否可调焦。 这意味着它将始终显示为根据需要在屏幕上使用尽可能多的空间,而不管这是否覆盖了输入法。

常量值:2(0x00000002)

Public constructors

PopupWindow

Added in API level 1
PopupWindow (Context context)

创建一个新的空的,不可聚焦的维(0,0)弹出窗口。

弹出窗口确实提供了背景。

Parameters
context Context

PopupWindow

Added in API level 1
PopupWindow (Context context, 
                AttributeSet attrs)

创建一个新的空的,不可聚焦的维(0,0)弹出窗口。

弹出窗口确实提供了背景。

Parameters
context Context
attrs AttributeSet

PopupWindow

Added in API level 1
PopupWindow (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

创建一个新的空的,不可聚焦的维(0,0)弹出窗口。

弹出窗口确实提供了背景。

Parameters
context Context
attrs AttributeSet
defStyleAttr int

PopupWindow

Added in API level 11
PopupWindow (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes)

创建一个新的,空的,不可聚焦的维度(0,0)弹出窗口。

弹出窗口不提供背景。

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

PopupWindow

Added in API level 1
PopupWindow ()

创建一个新的空的,不可聚焦的维(0,0)弹出窗口。

弹出窗口不提供任何背景。 这应该由内容视图来处理。

PopupWindow

Added in API level 1
PopupWindow (View contentView)

创建一个新的不可聚焦的弹出窗口,可以显示contentView 窗口的尺寸是(0,0)。

弹出窗口不提供任何背景。 这应该由内容视图来处理。

Parameters
contentView View: the popup's content

PopupWindow

Added in API level 1
PopupWindow (int width, 
                int height)

创建一个新的空的,不可调焦的弹出窗口。 窗口的维度必须传递给此构造函数。

弹出窗口不提供任何背景。 这应该由内容视图来处理。

Parameters
width int: the popup's width
height int: the popup's height

PopupWindow

Added in API level 1
PopupWindow (View contentView, 
                int width, 
                int height)

创建一个新的不可聚焦的弹出窗口,可以显示contentView 窗口的维度必须传递给此构造函数。

弹出窗口不提供任何背景。 这应该由内容视图来处理。

Parameters
contentView View: the popup's content
width int: the popup's width
height int: the popup's height

PopupWindow

Added in API level 1
PopupWindow (View contentView, 
                int width, 
                int height, 
                boolean focusable)

创建一个新的弹出窗口,可以显示contentView 窗口的维度必须传递给此构造函数。

弹出窗口不提供任何背景。 这应该由内容视图来处理。

Parameters
contentView View: the popup's content
width int: the popup's width
height int: the popup's height
focusable boolean: true if the popup can be focused, false otherwise

Public methods

dismiss

Added in API level 1
void dismiss ()

处理弹出窗口。 只有在执行showAsDropDown(android.view.View)后才能调用此方法。 否则,调用此方法将不起作用。

也可以看看:

getAnimationStyle

Added in API level 1
int getAnimationStyle ()

返回动画风格以使用弹出窗口并消失

Returns
int the animation style to use the popup appears and disappears

getBackground

Added in API level 1
Drawable getBackground ()

返回用作弹出窗口背景的绘图。

相关XML属性:

Returns
Drawable the background drawable or null if not set

也可以看看:

getContentView

Added in API level 1
View getContentView ()

返回用作弹出窗口内容的视图。

Returns
View a View representing the popup's content

也可以看看:

getElevation

Added in API level 21
float getElevation ()

相关XML属性:

Returns
float the elevation for this popup window in pixels

也可以看看:

getEnterTransition

Added in API level 24
Transition getEnterTransition ()

返回显示弹出窗口时要使用的输入转换。

相关XML属性:

Returns
Transition the enter transition, or null if not set

也可以看看:

getExitTransition

Added in API level 24
Transition getExitTransition ()

返回在弹出窗口关闭时要使用的退出转换。

相关XML属性:

Returns
Transition the exit transition, or null if not set

也可以看看:

getHeight

Added in API level 1
int getHeight ()

返回弹出窗口的请求高度。 可能是布局常量,如WRAP_CONTENTMATCH_PARENT

弹出窗口的实际大小可能取决于其他因素,如剪辑和窗口布局。

Returns
int the popup height in pixels or a layout constant

也可以看看:

getInputMethodMode

Added in API level 3
int getInputMethodMode ()

返回 setInputMethodMode(int)的当前值。

Returns
int

也可以看看:

getMaxAvailableHeight

Added in API level 1
int getMaxAvailableHeight (View anchor)

返回弹出窗口完全显示的最大高度。 建议此高度为弹出窗口高度的最大值,否则弹出窗口可能会被剪切。

Parameters
anchor View: The view on which the popup window must be anchored.
Returns
int The maximum available height for the popup to be completely shown.

getMaxAvailableHeight

Added in API level 3
int getMaxAvailableHeight (View anchor, 
                int yOffset)

返回弹出窗口完全显示的最大高度。 建议此高度为弹出窗口高度的最大值,否则弹出窗口可能会被剪切。

Parameters
anchor View: The view on which the popup window must be anchored.
yOffset int: y offset from the view's bottom edge
Returns
int The maximum available height for the popup to be completely shown.

getMaxAvailableHeight

Added in API level 24
int getMaxAvailableHeight (View anchor, 
                int yOffset, 
                boolean ignoreBottomDecorations)

返回可用于完全显示弹出框的最大高度,可以忽略任何底部装饰,如输入法。 建议此高度为弹出窗口高度的最大值,否则弹出窗口可能会被剪切。

Parameters
anchor View: The view on which the popup window must be anchored.
yOffset int: y offset from the view's bottom edge
ignoreBottomDecorations boolean: if true, the height returned will be all the way to the bottom of the display, ignoring any bottom decorations
Returns
int The maximum available height for the popup to be completely shown.

getOverlapAnchor

Added in API level 23
boolean getOverlapAnchor ()

当显示为下拉菜单时,返回弹出窗口是否应该与其锚点视图重叠。

Returns
boolean Whether the popup should overlap its anchor.

也可以看看:

getSoftInputMode

Added in API level 4
int getSoftInputMode ()

返回 setSoftInputMode(int)中的当前值。

Returns
int

也可以看看:

getWidth

Added in API level 1
int getWidth ()

返回弹出窗口的请求宽度。 可能是布局常量,如WRAP_CONTENTMATCH_PARENT

弹出窗口的实际大小可能取决于其他因素,如剪辑和窗口布局。

Returns
int the popup width in pixels or a layout constant

也可以看看:

getWindowLayoutType

Added in API level 23
int getWindowLayoutType ()

返回此窗口的布局类型。

Returns
int

也可以看看:

isAboveAnchor

Added in API level 3
boolean isAboveAnchor ()

指示弹出窗口是否在上方显示(弹出窗口底部的y坐标小于锚点的y坐标)或低于锚点视图(弹出窗口的y坐标大于锚点底部的y坐标)。 只有在调用showAsDropDown(android.view.View)showAsDropDown(android.view.View, int, int)后,此方法返回的值才有意义。

Returns
boolean True if this popup is showing above the anchor view, false otherwise.

isAttachedInDecor

Added in API level 22
boolean isAttachedInDecor ()

指示是否将弹出窗口附加到其父窗口的装饰框中。

Returns
boolean true if the window will be attached to the decor frame of its parent window.

也可以看看:

isClippingEnabled

Added in API level 3
boolean isClippingEnabled ()

指示是否启用弹出窗口的剪辑。

Returns
boolean true if the clipping is enabled, false otherwise

也可以看看:

isFocusable

Added in API level 1
boolean isFocusable ()

指出弹出窗口是否可以抓住焦点。

Returns
boolean true if the popup is focusable, false otherwise

也可以看看:

isOutsideTouchable

Added in API level 3
boolean isOutsideTouchable ()

指示是否将弹出窗口通知其窗口外的触摸事件。

Returns
boolean true if the popup is outside touchable, false otherwise

也可以看看:

isShowing

Added in API level 1
boolean isShowing ()

指示此弹出窗口是否显示在屏幕上。

Returns
boolean true if the popup is showing, false otherwise

isSplitTouchEnabled

Added in API level 11
boolean isSplitTouchEnabled ()

指示弹出窗口是否支持拆分触摸。

Returns
boolean true if the touch splitting is enabled, false otherwise

也可以看看:

isTouchable

Added in API level 3
boolean isTouchable ()

指示弹出窗口是否接收触摸事件。

Returns
boolean true if the popup is touchable, false otherwise

也可以看看:

setAnimationStyle

Added in API level 1
void setAnimationStyle (int animationStyle)

更改此弹出窗口的动画样式资源。

如果弹出窗口显示,调用此方法将仅在下次显示弹出窗口时生效,或者通过手动调用其中一个 update()方法 update()

Parameters
animationStyle int: animation style to use when the popup appears and disappears. Set to -1 for the default animation, 0 for no animation, or a resource identifier for an explicit animation.

也可以看看:

setAttachedInDecor

Added in API level 22
void setAttachedInDecor (boolean enabled)

这会将弹出窗口附加到父窗口的装饰框,以避免与导航栏等屏幕装饰重叠。 覆盖标志FLAG_LAYOUT_ATTACHED_IN_DECOR的默认行为。

默认情况下,该标志在SDK版本 LOLLIPOP_MR1或更高版本上设置,并在较小的SDK版本上清除。

Parameters
enabled boolean: true if the popup should be attached to the decor frame of its parent window.

也可以看看:

setBackgroundDrawable

Added in API level 1
void setBackgroundDrawable (Drawable background)

指定此弹出窗口的背景可绘制。 背景可以设置为null

相关XML属性:

Parameters
background Drawable: the popup's background

也可以看看:

setClippingEnabled

Added in API level 3
void setClippingEnabled (boolean enabled)

允许弹出窗口延伸到屏幕的边界之外。 默认情况下,窗口被剪裁到屏幕边界。 将其设置为false将允许窗口被准确定位。

如果弹出窗口显示,调用此方法将仅在下次显示弹出窗口或通过手动调用其中一个 update()方法时 update()

Parameters
enabled boolean: false if the window should be allowed to extend outside of the screen

也可以看看:

setContentView

Added in API level 1
void setContentView (View contentView)

更改弹出窗口的内容。 内容由View的实例View

如果在显示弹出窗口时调用此方法,则不起作用。

Parameters
contentView View: the new content for the popup

也可以看看:

setElevation

Added in API level 21
void setElevation (float elevation)

指定此弹出窗口的高程。

相关XML属性:

Parameters
elevation float: the popup's elevation in pixels

也可以看看:

setEnterTransition

Added in API level 23
void setEnterTransition (Transition enterTransition)

设置显示弹出窗口时要使用的输入转换。

相关XML属性:

Parameters
enterTransition Transition: the enter transition, or null to clear

也可以看看:

setExitTransition

Added in API level 23
void setExitTransition (Transition exitTransition)

设置撤销弹出窗口时要使用的退出转换。

相关XML属性:

Parameters
exitTransition Transition: the exit transition, or null to clear

也可以看看:

setFocusable

Added in API level 1
void setFocusable (boolean focusable)

更改弹出窗口的可聚焦性。 当可调焦时,如果弹出窗口包含可View的焦点View ,则该窗口将抓取当前焦点小部件的焦点。 默认情况下,弹出窗口不可聚焦。

如果显示弹出窗口,调用此方法将仅在下次显示弹出窗口时生效,或者通过手动调用其中一个 update()方法 update()

Parameters
focusable boolean: true if the popup should grab focus, false otherwise.

也可以看看:

setHeight

Added in API level 1
void setHeight (int height)

设置弹出窗口的请求高度。 可能是一个布局常量,如WRAP_CONTENTMATCH_PARENT

弹出窗口的实际大小可能取决于其他因素,如剪辑和窗口布局。

如果弹出窗口显示,调用此方法将在下次显示弹出窗口时生效。

Parameters
height int: the popup height in pixels or a layout constant

也可以看看:

setIgnoreCheekPress

Added in API level 1
void setIgnoreCheekPress ()

在弹出窗口上设置标志以忽略面颊新闻事件; 默认情况下这个标志被设置为false,这意味着弹出窗口不会忽略脸颊压力派发事件。

如果弹出窗口显示,调用此方法将仅在下次显示弹出窗口或通过手动调用其中一个 update()方法时 update()

也可以看看:

setInputMethodMode

Added in API level 3
void setInputMethodMode (int mode)

控制如何的弹出与输入方法工作:之一 INPUT_METHOD_FROM_FOCUSABLEINPUT_METHOD_NEEDED ,或 INPUT_METHOD_NOT_NEEDED

如果弹出窗口显示,则调用此方法仅在下次显示弹出窗口或通过手动调用其中一个 update()方法时 update()

Parameters
mode int

也可以看看:

setOnDismissListener

Added in API level 1
void setOnDismissListener (PopupWindow.OnDismissListener onDismissListener)

设置窗口关闭时调用的侦听器。

Parameters
onDismissListener PopupWindow.OnDismissListener: The listener.

setOutsideTouchable

Added in API level 3
void setOutsideTouchable (boolean touchable)

控制弹出窗口是否会被通知触摸事件。 这只对可触摸但不可聚焦的弹出窗口有意义,这意味着在窗口外面的触摸将被传送到后面的窗口。 默认值是false。

如果弹出窗口显示,调用此方法将仅在下次显示弹出窗口或通过手动调用 update()方法之一时 update()

Parameters
touchable boolean: true if the popup should receive outside touch events, false otherwise

也可以看看:

setOverlapAnchor

Added in API level 23
void setOverlapAnchor (boolean overlapAnchor)

显示为下拉菜单时,设置弹出窗口是否应与其锚点视图重叠。

如果弹出窗口显示,则调用此方法仅在下次显示弹出窗口时生效。

Parameters
overlapAnchor boolean: Whether the popup should overlap its anchor.

也可以看看:

setSoftInputMode

Added in API level 4
void setSoftInputMode (int mode)

设置软输入区域的操作模式。

Parameters
mode int: The desired mode, see softInputMode for the full list

也可以看看:

setSplitTouchEnabled

Added in API level 11
void setSplitTouchEnabled (boolean enabled)

允许弹出窗口在其他也支持分割触摸的窗口之间分割触摸。 当此标志为false时,第一个停止的指针决定了所有后续触摸所经过的窗口,直到所有指针上升为止。 当这个标志为真时,每个指针(不一定是第一个)下降决定了该指针的所有后续触摸将一直到该指针上升的窗口,从而使得可以在多个窗口上分割具有多个指针的触摸。

Parameters
enabled boolean: true if the split touches should be enabled, false otherwise

也可以看看:

setTouchInterceptor

Added in API level 3
void setTouchInterceptor (View.OnTouchListener l)

为分派到弹出窗口的所有触摸事件设置回调。

Parameters
l View.OnTouchListener

setTouchable

Added in API level 3
void setTouchable (boolean touchable)

更改弹出窗口的可触摸性。 当可触摸时,窗口将接收触摸事件,否则触摸事件将进入它下面的窗口。 默认情况下,该窗口是可触摸的。

如果显示弹出窗口,调用此方法将仅在下次显示弹出窗口或通过手动调用其中一个 update()方法时 update()

Parameters
touchable boolean: true if the popup should receive touch events, false otherwise

也可以看看:

setWidth

Added in API level 1
void setWidth (int width)

设置弹出窗口的请求宽度。 可能是一个布局常量,如WRAP_CONTENTMATCH_PARENT

弹出窗口的实际大小可能取决于其他因素,如剪辑和窗口布局。

如果弹出窗口显示,调用此方法将在下次显示弹出窗口时生效。

Parameters
width int: the popup width in pixels or a layout constant

也可以看看:

setWindowLayoutMode

Added in API level 3
void setWindowLayoutMode (int widthSpec, 
                int heightSpec)

此方法在API级别23中已弃用。
使用setWidth(int)setHeight(int)

更改由弹出窗口给窗口管理器的宽度和高度测量规格。 默认情况下,这些值为0,表示当前的宽度或高度是从窗口管理器请求的显式大小。 您可以提供WRAP_CONTENTMATCH_PARENT以替代已提供的测量规格,替换已在弹出窗口中设置的绝对宽度和高度。

如果弹出窗口显示,则调用此方法仅在下次显示弹出窗口时生效。

Parameters
widthSpec int: an explicit width measure spec mode, either WRAP_CONTENT, MATCH_PARENT, or 0 to use the absolute width.
heightSpec int: an explicit height measure spec mode, either WRAP_CONTENT, MATCH_PARENT, or 0 to use the absolute height.

setWindowLayoutType

Added in API level 23
void setWindowLayoutType (int layoutType)

为此窗口设置布局类型。

有关可能的值,请参阅 type

Parameters
layoutType int: Layout type for this window.

也可以看看:

showAsDropDown

Added in API level 1
void showAsDropDown (View anchor)

在锚定视图左下角的弹出窗口中显示内容视图。 如果屏幕上没有足够的空间来显示完整的弹出窗口,则此方法尝试查找要滚动的父滚动视图。 如果没有父滚动视图可以滚动,则弹出框的左下角固定在锚视图的左上角。

Parameters
anchor View: the view on which to pin the popup window

也可以看看:

showAsDropDown

Added in API level 19
void showAsDropDown (View anchor, 
                int xoff, 
                int yoff, 
                int gravity)

在固定在另一个视图角落的弹出窗口中显示内容视图。 该窗口根据指定的重力定位并按指定的x和y坐标偏移。

如果屏幕上没有足够的空间来显示完整的弹出窗口,则此方法尝试查找要滚动的父滚动视图。 如果没有父视图可以滚动,则指定的垂直重力将被忽略,并且弹出窗口将自己锚定,使其可见。

如果稍后视图滚动以将 anchor移动到其他位置,则弹出窗口将相应地移动。

Parameters
anchor View: the view on which to pin the popup window
xoff int: A horizontal offset from the anchor in pixels
yoff int: A vertical offset from the anchor in pixels
gravity int: Alignment of the popup relative to the anchor

也可以看看:

showAsDropDown

Added in API level 1
void showAsDropDown (View anchor, 
                int xoff, 
                int yoff)

在一个弹出窗口中显示内容视图,该窗口通过指定的x和y坐标偏移到锚点视图的左下角。 如果屏幕上没有足够的空间来显示完整的弹出窗口,则此方法尝试查找要滚动的父滚动视图。 如果没有父滚动视图可以滚动,则弹出框的左下角固定在锚视图的左上角。

如果稍后视图滚动以将 anchor移动到其他位置,则弹出窗口将相应地移动。

Parameters
anchor View: the view on which to pin the popup window
xoff int: A horizontal offset from the anchor in pixels
yoff int: A vertical offset from the anchor in pixels

也可以看看:

showAtLocation

Added in API level 1
void showAtLocation (View parent, 
                int gravity, 
                int x, 
                int y)

在指定位置的弹出窗口中显示内容视图。 如果弹出窗口不适合在屏幕上,它将被剪切。 有关重力和x和y参数如何相关的更多信息,请参阅WindowManager.LayoutParams 指定NO_GRAVITY的引力类似于指定Gravity.LEFT | Gravity.TOP

Parameters
parent View: a parent view to get the getWindowToken() token from
gravity int: the gravity which controls the placement of the popup window
x int: the popup's x location offset
y int: the popup's y location offset

update

Added in API level 1
void update (View anchor, 
                int width, 
                int height)

更新弹出窗口的位置和尺寸。

调用此函数也会按照 update()所述的 update()用当前的弹出状态更新窗口。

Parameters
anchor View: the popup's anchor view
width int: the new width in pixels, must be >= 0 or -1 to ignore
height int: the new height in pixels, must be >= 0 or -1 to ignore

update

Added in API level 1
void update (View anchor, 
                int xoff, 
                int yoff, 
                int width, 
                int height)

更新弹出窗口的位置和尺寸。

宽度和高度可以设置为-1以仅更新位置。 调用此函数还会按照update()所述的当前弹出状态更新窗口。

如果视图稍后滚动以将 anchor移动到其他位置,则弹出窗口将相应地移动。

Parameters
anchor View: the popup's anchor view
xoff int: x offset from the view's left edge
yoff int: y offset from the view's bottom edge
width int: the new width in pixels, must be >= 0 or -1 to ignore
height int: the new height in pixels, must be >= 0 or -1 to ignore

update

Added in API level 4
void update (int width, 
                int height)

更新弹出窗口的尺寸。

调用此函数还会按照 update()所述的 update()使用当前弹出状态更新窗口。

Parameters
width int: the new width in pixels, must be >= 0 or -1 to ignore
height int: the new height in pixels, must be >= 0 or -1 to ignore

update

Added in API level 3
void update ()

如果弹出窗口当前正在显示,则从当前设置的状态更新弹出窗口的状态。

这包括:

update

Added in API level 3
void update (int x, 
                int y, 
                int width, 
                int height, 
                boolean force)

更新弹出窗口的位置和尺寸。

宽度和高度可以设置为-1以仅更新位置。 调用此函数也会按照update()所述的update()用当前弹出状态更新窗口。

Parameters
x int: the new x location
y int: the new y location
width int: the new width in pixels, must be >= 0 or -1 to ignore
height int: the new height in pixels, must be >= 0 or -1 to ignore
force boolean: true to reposition the window even if the specified position already seems to correspond to the LayoutParams, false to only reposition if needed

update

Added in API level 1
void update (int x, 
                int y, 
                int width, 
                int height)

更新弹出窗口的位置和尺寸。

宽度和高度可以设置为-1以仅更新位置。 调用此函数也会按照update()所述的update()使用当前弹出状态更新窗口。

Parameters
x int: the new x location
y int: the new y location
width int: the new width in pixels, must be >= 0 or -1 to ignore
height int: the new height in pixels, must be >= 0 or -1 to ignore

Hooray!