public class PopupWindow
extends Object
java.lang.Object | |
↳ | android.widget.PopupWindow |
这个类表示一个可用于显示任意视图的弹出窗口。 弹出窗口是一个浮动容器,显示在当前活动的顶部。
在Android的所有版本中,可以通过调用setAnimationStyle(int)
并传递用于定义windowEnterAnimation
和windowExitAnimation
的动画样式的资源ID来指定弹出窗口输入和退出动画。 例如,传递Animation_Dialog
会给出一个比例和alpha动画。
窗口动画风格也可以通过popupAnimationStyle
属性在弹出窗口的样式XML中指定。
从API 23开始,可以通过调用setEnterTransition(Transition)
或setExitTransition(Transition)
并传递Transition
来指定更复杂的弹出窗口进入和退出转换。
弹出窗口的输入和退出转换也可以分别通过popupEnterTransition
和popupExitTransition
属性在弹出窗口的样式XML中指定。
也可以看看:
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 适用于 |
int |
INPUT_METHOD_NEEDED
|
int |
INPUT_METHOD_NOT_NEEDED
|
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() 返回 |
int |
getMaxAvailableHeight(View anchor) 返回弹出窗口完全显示的最大高度。 |
int |
getMaxAvailableHeight(View anchor, int yOffset) 返回弹出窗口完全显示的最大高度。 |
int |
getMaxAvailableHeight(View anchor, int yOffset, boolean ignoreBottomDecorations) 返回可用于完全显示弹出框的最大高度,可以忽略任何底部装饰,如输入法。 |
boolean |
getOverlapAnchor() 当显示为下拉菜单时,返回弹出窗口是否应该与其锚点视图重叠。 |
int |
getSoftInputMode() 返回 |
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) 控制如何的弹出与输入方法工作:之一 |
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中已弃用。请使用 |
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
|
弹出窗口是否应该与其锚点视图重叠。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 overlapAnchor
。
用于弹出窗口的动画样式。
必须是另一个资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
这对应于全局属性资源符号 popupAnimationStyle
。
用于弹出窗口的背景。
可能是对其他资源的引用,形式为“ @[+][package:]type:name
”,也可能是“ ?[package:][type:]name
”形式的主题属性。
可以是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这对应于全局属性资源符号 popupBackground
。
相关方法:
用于弹出窗口的窗口高程。
必须是一个维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 popupElevation
。
相关方法:
用于将视图移动到弹出窗口的转换。
必须是另一个资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
这对应于全局属性资源符号 popupEnterTransition
。
相关方法:
Transition用于将视图移出弹出窗口。
必须是另一个资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
这对应于全局属性资源符号 popupExitTransition
。
相关方法:
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)
PopupWindow (Context context)
创建一个新的空的,不可聚焦的维(0,0)弹出窗口。
弹出窗口确实提供了背景。
Parameters | |
---|---|
context |
Context
|
PopupWindow (Context context, AttributeSet attrs)
创建一个新的空的,不可聚焦的维(0,0)弹出窗口。
弹出窗口确实提供了背景。
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
PopupWindow (Context context, AttributeSet attrs, int defStyleAttr)
创建一个新的空的,不可聚焦的维(0,0)弹出窗口。
弹出窗口确实提供了背景。
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
defStyleAttr |
int
|
PopupWindow (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
创建一个新的,空的,不可聚焦的维度(0,0)弹出窗口。
弹出窗口不提供背景。
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
defStyleAttr |
int
|
defStyleRes |
int
|
PopupWindow (View contentView)
创建一个新的不可聚焦的弹出窗口,可以显示contentView 。 窗口的尺寸是(0,0)。
弹出窗口不提供任何背景。 这应该由内容视图来处理。
Parameters | |
---|---|
contentView |
View : the popup's content |
PopupWindow (int width, int height)
创建一个新的空的,不可调焦的弹出窗口。 窗口的维度必须传递给此构造函数。
弹出窗口不提供任何背景。 这应该由内容视图来处理。
Parameters | |
---|---|
width |
int : the popup's width |
height |
int : the popup's height |
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 (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 |
void dismiss ()
处理弹出窗口。 只有在执行showAsDropDown(android.view.View)
后才能调用此方法。 否则,调用此方法将不起作用。
int getAnimationStyle ()
返回动画风格以使用弹出窗口并消失
Returns | |
---|---|
int |
the animation style to use the popup appears and disappears |
Drawable getBackground ()
返回用作弹出窗口背景的绘图。
相关XML属性:
Returns | |
---|---|
Drawable |
the background drawable or null if not set |
View getContentView ()
返回用作弹出窗口内容的视图。
Returns | |
---|---|
View |
a View representing the popup's content |
float getElevation ()
相关XML属性:
Returns | |
---|---|
float |
the elevation for this popup window in pixels |
也可以看看:
Transition getEnterTransition ()
返回显示弹出窗口时要使用的输入转换。
相关XML属性:
Returns | |
---|---|
Transition |
the enter transition, or null if not set |
Transition getExitTransition ()
返回在弹出窗口关闭时要使用的退出转换。
相关XML属性:
Returns | |
---|---|
Transition |
the exit transition, or null if not set |
int getHeight ()
返回弹出窗口的请求高度。 可能是布局常量,如WRAP_CONTENT
或MATCH_PARENT
。
弹出窗口的实际大小可能取决于其他因素,如剪辑和窗口布局。
Returns | |
---|---|
int |
the popup height in pixels or a layout constant |
也可以看看:
int getInputMethodMode ()
返回 setInputMethodMode(int)
的当前值。
Returns | |
---|---|
int |
也可以看看:
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. |
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. |
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. |
boolean getOverlapAnchor ()
当显示为下拉菜单时,返回弹出窗口是否应该与其锚点视图重叠。
Returns | |
---|---|
boolean |
Whether the popup should overlap its anchor. |
也可以看看:
int getSoftInputMode ()
返回 setSoftInputMode(int)
中的当前值。
Returns | |
---|---|
int |
int getWidth ()
返回弹出窗口的请求宽度。 可能是布局常量,如WRAP_CONTENT
或MATCH_PARENT
。
弹出窗口的实际大小可能取决于其他因素,如剪辑和窗口布局。
Returns | |
---|---|
int |
the popup width in pixels or a layout constant |
也可以看看:
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. |
boolean isAttachedInDecor ()
指示是否将弹出窗口附加到其父窗口的装饰框中。
Returns | |
---|---|
boolean |
true if the window will be attached to the decor frame of its parent window. |
boolean isClippingEnabled ()
指示是否启用弹出窗口的剪辑。
Returns | |
---|---|
boolean |
true if the clipping is enabled, false otherwise |
也可以看看:
boolean isFocusable ()
指出弹出窗口是否可以抓住焦点。
Returns | |
---|---|
boolean |
true if the popup is focusable, false otherwise |
也可以看看:
boolean isOutsideTouchable ()
指示是否将弹出窗口通知其窗口外的触摸事件。
Returns | |
---|---|
boolean |
true if the popup is outside touchable, false otherwise |
也可以看看:
boolean isShowing ()
指示此弹出窗口是否显示在屏幕上。
Returns | |
---|---|
boolean |
true if the popup is showing, false otherwise |
boolean isSplitTouchEnabled ()
指示弹出窗口是否支持拆分触摸。
Returns | |
---|---|
boolean |
true if the touch splitting is enabled, false otherwise |
boolean isTouchable ()
指示弹出窗口是否接收触摸事件。
Returns | |
---|---|
boolean |
true if the popup is touchable, false otherwise |
也可以看看:
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. |
也可以看看:
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. |
void setBackgroundDrawable (Drawable background)
指定此弹出窗口的背景可绘制。 背景可以设置为null
。
相关XML属性:
Parameters | |
---|---|
background |
Drawable : the popup's background |
也可以看看:
void setClippingEnabled (boolean enabled)
允许弹出窗口延伸到屏幕的边界之外。 默认情况下,窗口被剪裁到屏幕边界。 将其设置为false将允许窗口被准确定位。
如果弹出窗口显示,调用此方法将仅在下次显示弹出窗口或通过手动调用其中一个 update()
方法时 update()
。
Parameters | |
---|---|
enabled |
boolean : false if the window should be allowed to extend outside of the screen |
void setContentView (View contentView)
如果在显示弹出窗口时调用此方法,则不起作用。
Parameters | |
---|---|
contentView |
View : the new content for the popup |
也可以看看:
void setElevation (float elevation)
指定此弹出窗口的高程。
相关XML属性:
Parameters | |
---|---|
elevation |
float : the popup's elevation in pixels |
也可以看看:
void setEnterTransition (Transition enterTransition)
设置显示弹出窗口时要使用的输入转换。
相关XML属性:
Parameters | |
---|---|
enterTransition |
Transition : the enter transition, or null to clear |
也可以看看:
void setExitTransition (Transition exitTransition)
设置撤销弹出窗口时要使用的退出转换。
相关XML属性:
Parameters | |
---|---|
exitTransition |
Transition : the exit transition, or null to clear |
也可以看看:
void setFocusable (boolean focusable)
更改弹出窗口的可聚焦性。 当可调焦时,如果弹出窗口包含可View
的焦点View
,则该窗口将抓取当前焦点小部件的焦点。 默认情况下,弹出窗口不可聚焦。
如果显示弹出窗口,调用此方法将仅在下次显示弹出窗口时生效,或者通过手动调用其中一个 update()
方法 update()
。
Parameters | |
---|---|
focusable |
boolean : true if the popup should grab focus, false otherwise. |
也可以看看:
void setHeight (int height)
设置弹出窗口的请求高度。 可能是一个布局常量,如WRAP_CONTENT
或MATCH_PARENT
。
弹出窗口的实际大小可能取决于其他因素,如剪辑和窗口布局。
如果弹出窗口显示,调用此方法将在下次显示弹出窗口时生效。
Parameters | |
---|---|
height |
int : the popup height in pixels or a layout constant |
也可以看看:
void setIgnoreCheekPress ()
在弹出窗口上设置标志以忽略面颊新闻事件; 默认情况下这个标志被设置为false,这意味着弹出窗口不会忽略脸颊压力派发事件。
如果弹出窗口显示,调用此方法将仅在下次显示弹出窗口或通过手动调用其中一个 update()
方法时 update()
。
也可以看看:
void setInputMethodMode (int mode)
控制如何的弹出与输入方法工作:之一 INPUT_METHOD_FROM_FOCUSABLE
, INPUT_METHOD_NEEDED
,或 INPUT_METHOD_NOT_NEEDED
。
如果弹出窗口显示,则调用此方法仅在下次显示弹出窗口或通过手动调用其中一个 update()
方法时 update()
。
Parameters | |
---|---|
mode |
int
|
也可以看看:
void setOnDismissListener (PopupWindow.OnDismissListener onDismissListener)
设置窗口关闭时调用的侦听器。
Parameters | |
---|---|
onDismissListener |
PopupWindow.OnDismissListener : The listener. |
void setOutsideTouchable (boolean touchable)
控制弹出窗口是否会被通知触摸事件。 这只对可触摸但不可聚焦的弹出窗口有意义,这意味着在窗口外面的触摸将被传送到后面的窗口。 默认值是false。
如果弹出窗口显示,调用此方法将仅在下次显示弹出窗口或通过手动调用 update()
方法之一时 update()
。
Parameters | |
---|---|
touchable |
boolean : true if the popup should receive outside touch events, false otherwise |
void setOverlapAnchor (boolean overlapAnchor)
显示为下拉菜单时,设置弹出窗口是否应与其锚点视图重叠。
如果弹出窗口显示,则调用此方法仅在下次显示弹出窗口时生效。
Parameters | |
---|---|
overlapAnchor |
boolean : Whether the popup should overlap its anchor. |
也可以看看:
void setSoftInputMode (int mode)
设置软输入区域的操作模式。
Parameters | |
---|---|
mode |
int : The desired mode, see softInputMode for the full list |
也可以看看:
void setSplitTouchEnabled (boolean enabled)
允许弹出窗口在其他也支持分割触摸的窗口之间分割触摸。 当此标志为false时,第一个停止的指针决定了所有后续触摸所经过的窗口,直到所有指针上升为止。 当这个标志为真时,每个指针(不一定是第一个)下降决定了该指针的所有后续触摸将一直到该指针上升的窗口,从而使得可以在多个窗口上分割具有多个指针的触摸。
Parameters | |
---|---|
enabled |
boolean : true if the split touches should be enabled, false otherwise |
也可以看看:
void setTouchInterceptor (View.OnTouchListener l)
为分派到弹出窗口的所有触摸事件设置回调。
Parameters | |
---|---|
l |
View.OnTouchListener
|
void setTouchable (boolean touchable)
更改弹出窗口的可触摸性。 当可触摸时,窗口将接收触摸事件,否则触摸事件将进入它下面的窗口。 默认情况下,该窗口是可触摸的。
如果显示弹出窗口,调用此方法将仅在下次显示弹出窗口或通过手动调用其中一个 update()
方法时 update()
。
Parameters | |
---|---|
touchable |
boolean : true if the popup should receive touch events, false otherwise |
也可以看看:
void setWidth (int width)
设置弹出窗口的请求宽度。 可能是一个布局常量,如WRAP_CONTENT
或MATCH_PARENT
。
弹出窗口的实际大小可能取决于其他因素,如剪辑和窗口布局。
如果弹出窗口显示,调用此方法将在下次显示弹出窗口时生效。
Parameters | |
---|---|
width |
int : the popup width in pixels or a layout constant |
也可以看看:
void setWindowLayoutMode (int widthSpec, int heightSpec)
此方法在API级别23中已弃用。
使用setWidth(int)
和setHeight(int)
。
更改由弹出窗口给窗口管理器的宽度和高度测量规格。 默认情况下,这些值为0,表示当前的宽度或高度是从窗口管理器请求的显式大小。 您可以提供WRAP_CONTENT
或MATCH_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. |
void setWindowLayoutType (int layoutType)
为此窗口设置布局类型。
有关可能的值,请参阅 type
。
Parameters | |
---|---|
layoutType |
int : Layout type for this window. |
也可以看看:
void showAsDropDown (View anchor)
在锚定视图左下角的弹出窗口中显示内容视图。 如果屏幕上没有足够的空间来显示完整的弹出窗口,则此方法尝试查找要滚动的父滚动视图。 如果没有父滚动视图可以滚动,则弹出框的左下角固定在锚视图的左上角。
Parameters | |
---|---|
anchor |
View : the view on which to pin the popup window |
也可以看看:
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 |
也可以看看:
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 |
也可以看看:
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 |
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 |
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 |
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 |
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 |
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 |