Added in API level 1

PopupWindow


open class PopupWindow
kotlin.Any
   ↳ android.widget.PopupWindow

This class represents a popup window that can be used to display an arbitrary view. The popup window is a floating container that appears on top of the current activity.

Animation

On all versions of Android, popup window enter and exit animations may be specified by calling setAnimationStyle(int) and passing the resource ID for an animation style that defines windowEnterAnimation and windowExitAnimation. For example, passing android.R.style#Animation_Dialog will give a scale and alpha animation.
A window animation style may also be specified in the popup window's style XML via the popupAnimationStyle attribute.

Starting with API 23, more complex popup window enter and exit transitions may be specified by calling either setEnterTransition(android.transition.Transition) or setExitTransition(android.transition.Transition) and passing a Transition.
Popup enter and exit transitions may also be specified in the popup window's style XML via the popupEnterTransition and popupExitTransition attributes, respectively.

Summary

Nested classes
abstract

Listener that is called when this popup window is dismissed.

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
static Int

Mode for setInputMethodMode(int): the requirements for the input method should be based on the focusability of the popup.

static Int

Mode for setInputMethodMode(int): this popup always needs to work with an input method, regardless of whether it is focusable.

static Int

Mode for setInputMethodMode(int): this popup never needs to work with an input method, regardless of whether it is focusable.

Public constructors

Create a new empty, non focusable popup window of dimension (0,0).

PopupWindow(context: Context!)

Create a new empty, non focusable popup window of dimension (0,0).

PopupWindow(context: Context!, attrs: AttributeSet!)

Create a new empty, non focusable popup window of dimension (0,0).

PopupWindow(context: Context!, attrs: AttributeSet!, defStyleAttr: Int)

Create a new empty, non focusable popup window of dimension (0,0).

PopupWindow(context: Context!, attrs: AttributeSet!, defStyleAttr: Int, defStyleRes: Int)

Create a new, empty, non focusable popup window of dimension (0,0).

PopupWindow(contentView: View!)

Create a new non focusable popup window which can display the contentView.

PopupWindow(contentView: View!, width: Int, height: Int)

Create a new non focusable popup window which can display the contentView.

PopupWindow(contentView: View!, width: Int, height: Int, focusable: Boolean)

Create a new popup window which can display the contentView.

PopupWindow(width: Int, height: Int)

Create a new empty, non focusable popup window.

Public methods
open Unit

Disposes of the popup window.

open Int

Return the animation style to use the popup appears and disappears

open Drawable!

Return the drawable used as the popup window's background.

open View!

Return the view used as the content of the popup window.

open Float

open Transition?

Returns the enter transition to be used when the popup window is shown.

open Rect?

Returns bounds which are used as a center of the enter and exit transitions.

open Transition?

Returns the exit transition to be used when the popup window is dismissed.

open Int

Returns the popup's requested height.

open Int

Return the current value in setInputMethodMode(int).

open Int

Returns the maximum height that is available for the popup to be completely shown.

open Int
getMaxAvailableHeight(anchor: View, yOffset: Int)

Returns the maximum height that is available for the popup to be completely shown.

open Int
getMaxAvailableHeight(anchor: View, yOffset: Int, ignoreBottomDecorations: Boolean)

Returns the maximum height that is available for the popup to be completely shown, optionally ignoring any bottom decorations such as the input method.

open Boolean

Returns whether the popup window should overlap its anchor view when displayed as a drop-down.

open Int

Returns the current value in setSoftInputMode(int).

open Int

Returns the popup's requested width.

open Int

Returns the layout type for this window.

open Boolean

Indicates whether the popup is showing above (the y coordinate of the popup's bottom is less than the y coordinate of the anchor) or below the anchor view (the y coordinate of the popup is greater than y coordinate of the anchor's bottom).

open Boolean

Indicates whether the popup window will be attached in the decor frame of its parent window.

open Boolean

Indicates whether this popup will be clipped to the screen and not to the containing window

open Boolean

Indicates whether clipping of the popup window is enabled.

open Boolean

Indicate whether the popup window can grab the focus.

open Boolean

Indicates whether the popup window will be forced into using absolute screen coordinates for positioning.

open Boolean

Indicates whether the popup window will be informed of touch events outside of its window.

open Boolean

Indicate whether this popup window is showing on screen.

open Boolean

Indicates whether the popup window supports splitting touches.

open Boolean

Indicates whether outside touches will be sent to this window or other windows behind it

open Boolean

Indicates whether the popup window receives touch events.

open Unit
setAnimationStyle(animationStyle: Int)

Change the animation style resource for this popup.

open Unit

This will attach the popup window to the decor frame of the parent window to avoid overlaping with screen decorations like the navigation bar.

open Unit

Specifies the background drawable for this popup window.

open Unit

Allows the popup window to extend beyond the bounds of the screen.

open Unit
setContentView(contentView: View!)

Change the popup's content.

open Unit
setElevation(elevation: Float)

Specifies the elevation for this popup window.

open Unit
setEnterTransition(enterTransition: Transition?)

Sets the enter transition to be used when the popup window is shown.

open Unit

Sets the bounds used as the epicenter of the enter and exit transitions.

open Unit
setExitTransition(exitTransition: Transition?)

Sets the exit transition to be used when the popup window is dismissed.

open Unit
setFocusable(focusable: Boolean)

Changes the focusability of the popup window.

open Unit
setHeight(height: Int)

Sets the popup's requested height.

open Unit

Set the flag on popup to ignore cheek press events; by default this flag is set to false which means the popup will not ignore cheek press dispatch events.

open Unit

Control how the popup operates with an input method: one of INPUT_METHOD_FROM_FOCUSABLE, INPUT_METHOD_NEEDED, or INPUT_METHOD_NOT_NEEDED.

open Unit

Clip this popup window to the screen, but not to the containing window.

open Unit

Allows the popup window to force the flag WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, overriding default behavior.

open Unit

Sets the listener to be called when the window is dismissed.

open Unit

Controls whether the pop-up will be informed of touch events outside of its window.

open Unit
setOverlapAnchor(overlapAnchor: Boolean)

Sets whether the popup window should overlap its anchor view when displayed as a drop-down.

open Unit

Sets the operating mode for the soft input area.

open Unit

Allows the popup window to split touches across other windows that also support split touch.

open Unit

Set a callback for all touch events being dispatched to the popup window.

open Unit
setTouchModal(touchModal: Boolean)

Set whether this window is touch modal or if outside touches will be sent to other windows behind it.

open Unit
setTouchable(touchable: Boolean)

Changes the touchability of the popup window.

open Unit
setWidth(width: Int)

Sets the popup's requested width.

open Unit
setWindowLayoutMode(widthSpec: Int, heightSpec: Int)

Change the width and height measure specs that are given to the window manager by the popup.

open Unit
setWindowLayoutType(layoutType: Int)

Set the layout type for this window.

open Unit
showAsDropDown(anchor: View!)

Display the content view in a popup window anchored to the bottom-left corner of the anchor view.

open Unit
showAsDropDown(anchor: View!, xoff: Int, yoff: Int)

Display the content view in a popup window anchored to the bottom-left corner of the anchor view offset by the specified x and y coordinates.

open Unit
showAsDropDown(anchor: View!, xoff: Int, yoff: Int, gravity: Int)

Displays the content view in a popup window anchored to the corner of another view.

open Unit
showAtLocation(parent: View!, gravity: Int, x: Int, y: Int)

Display the content view in a popup window at the specified location.

open Unit

Updates the state of the popup window, if it is currently being displayed, from the currently set state.

open Unit
update(anchor: View!, width: Int, height: Int)

Updates the position and the dimension of the popup window.

open Unit
update(anchor: View!, xoff: Int, yoff: Int, width: Int, height: Int)

Updates the position and the dimension of the popup window.

open Unit
update(width: Int, height: Int)

Updates the dimension of the popup window.

open Unit
update(x: Int, y: Int, width: Int, height: Int)

Updates the position and the dimension of the popup window.

open Unit
update(x: Int, y: Int, width: Int, height: Int, force: Boolean)

Updates the position and the dimension of the popup window.

XML attributes

android:overlapAnchor

android:overlapAnchor
Whether the popup window should overlap its anchor view.

May be a boolean value, such as "true" or "false".

android:popupAnimationStyle

android:popupAnimationStyle
The animation style to use for the popup window.

May be a reference to another resource, in the form "@[+][package:]type/name" or a theme attribute in the form "?[package:]type/name".

android:popupBackground

android:popupBackground
The background to use for the popup window.

May be a reference to another resource, in the form "@[+][package:]type/name" or a theme attribute in the form "?[package:]type/name".

May be a color value, in the form of "rgb", "argb", "rrggbb", or "aarrggbb".

android:popupElevation

android:popupElevation
Window elevation to use for the popup window.

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), and mm (millimeters).

android:popupEnterTransition

android:popupEnterTransition
Transition used to move views into the popup window.

May be a reference to another resource, in the form "@[+][package:]type/name" or a theme attribute in the form "?[package:]type/name".

android:popupExitTransition

android:popupExitTransition
Transition used to move views out of the popup window.

May be a reference to another resource, in the form "@[+][package:]type/name" or a theme attribute in the form "?[package:]type/name".

Constants

INPUT_METHOD_FROM_FOCUSABLE

Added in API level 3
static val INPUT_METHOD_FROM_FOCUSABLE: Int

Mode for setInputMethodMode(int): the requirements for the input method should be based on the focusability of the popup. That is if it is focusable than it needs to work with the input method, else it doesn't.

Value: 0

INPUT_METHOD_NEEDED

Added in API level 3
static val INPUT_METHOD_NEEDED: Int

Mode for setInputMethodMode(int): this popup always needs to work with an input method, regardless of whether it is focusable. This means that it will always be displayed so that the user can also operate the input method while it is shown.

Value: 1

INPUT_METHOD_NOT_NEEDED

Added in API level 3
static val INPUT_METHOD_NOT_NEEDED: Int

Mode for setInputMethodMode(int): this popup never needs to work with an input method, regardless of whether it is focusable. This means that it will always be displayed to use as much space on the screen as needed, regardless of whether this covers the input method.

Value: 2

Public constructors

Added in API level 1
PopupWindow()

Create a new empty, non focusable popup window of dimension (0,0).

The popup does not provide any background. This should be handled by the content view.

Added in API level 1
PopupWindow(context: Context!)

Create a new empty, non focusable popup window of dimension (0,0).

The popup does provide a background.

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

Create a new empty, non focusable popup window of dimension (0,0).

The popup does provide a background.

Added in API level 1
PopupWindow(
    context: Context!,
    attrs: AttributeSet!,
    defStyleAttr: Int)

Create a new empty, non focusable popup window of dimension (0,0).

The popup does provide a background.

Added in API level 11
PopupWindow(
    context: Context!,
    attrs: AttributeSet!,
    defStyleAttr: Int,
    defStyleRes: Int)

Create a new, empty, non focusable popup window of dimension (0,0).

The popup does not provide a background.

Added in API level 1
PopupWindow(contentView: View!)

Create a new non focusable popup window which can display the contentView. The dimension of the window are (0,0).

The popup does not provide any background. This should be handled by the content view.

Parameters
contentView View!: the popup's content
Added in API level 1
PopupWindow(
    contentView: View!,
    width: Int,
    height: Int)

Create a new non focusable popup window which can display the contentView. The dimension of the window must be passed to this constructor.

The popup does not provide any background. This should be handled by the content view.

Parameters
contentView View!: the popup's content
width Int: the popup's width
height Int: the popup's height
Added in API level 1
PopupWindow(
    contentView: View!,
    width: Int,
    height: Int,
    focusable: Boolean)

Create a new popup window which can display the contentView. The dimension of the window must be passed to this constructor.

The popup does not provide any background. This should be handled by the content view.

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
Added in API level 1
PopupWindow(
    width: Int,
    height: Int)

Create a new empty, non focusable popup window. The dimension of the window must be passed to this constructor.

The popup does not provide any background. This should be handled by the content view.

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

Public methods

dismiss

Added in API level 1
open fun dismiss(): Unit

Disposes of the popup window. This method can be invoked only after showAsDropDown(android.view.View) has been executed. Failing that, calling this method will have no effect.

getAnimationStyle

Added in API level 1
open fun getAnimationStyle(): Int

Return the animation style to use the popup appears and disappears

Return
Int the animation style to use the popup appears and disappears

getBackground

Added in API level 1
open fun getBackground(): Drawable!

Return the drawable used as the popup window's background.

Return
Drawable! the background drawable or null if not set

getContentView

Added in API level 1
open fun getContentView(): View!

Return the view used as the content of the popup window.

Return
View! a android.view.View representing the popup's content

getElevation

Added in API level 21
open fun getElevation(): Float
Return
Float the elevation for this popup window in pixels

getEnterTransition

Added in API level 24
open fun getEnterTransition(): Transition?

Returns the enter transition to be used when the popup window is shown.

Return
Transition? the enter transition, or null if not set

getEpicenterBounds

Added in API level 29
open fun getEpicenterBounds(): Rect?

Returns bounds which are used as a center of the enter and exit transitions.

Transitions use Rect, referred to as the epicenter, to orient the direction of travel. For popup windows, the anchor view bounds are used as the default epicenter.

See Transition.setEpicenterCallback(EpicenterCallback) for more information about how transition epicenters work.

Return
Rect? bounds relative to anchor view, or null if not set

getExitTransition

Added in API level 24
open fun getExitTransition(): Transition?

Returns the exit transition to be used when the popup window is dismissed.

Return
Transition? the exit transition, or null if not set

getHeight

Added in API level 1
open fun getHeight(): Int

Returns the popup's requested height. May be a layout constant such as LayoutParams.WRAP_CONTENT or LayoutParams.MATCH_PARENT.

The actual size of the popup may depend on other factors such as clipping and window layout.

Return
Int the popup height in pixels or a layout constant

See Also

getInputMethodMode

Added in API level 3
open fun getInputMethodMode(): Int

Return the current value in setInputMethodMode(int).

getMaxAvailableHeight

Added in API level 1
open fun getMaxAvailableHeight(anchor: View): Int

Returns the maximum height that is available for the popup to be completely shown. It is recommended that this height be the maximum for the popup's height, otherwise it is possible that the popup will be clipped.

Parameters
anchor View: The view on which the popup window must be anchored. This value cannot be null.
Return
Int The maximum available height for the popup to be completely shown.

getMaxAvailableHeight

Added in API level 3
open fun getMaxAvailableHeight(
    anchor: View,
    yOffset: Int
): Int

Returns the maximum height that is available for the popup to be completely shown. It is recommended that this height be the maximum for the popup's height, otherwise it is possible that the popup will be clipped.

Parameters
anchor View: The view on which the popup window must be anchored. This value cannot be null.
yOffset Int: y offset from the view's bottom edge
Return
Int The maximum available height for the popup to be completely shown.

getMaxAvailableHeight

Added in API level 24
open fun getMaxAvailableHeight(
    anchor: View,
    yOffset: Int,
    ignoreBottomDecorations: Boolean
): Int

Returns the maximum height that is available for the popup to be completely shown, optionally ignoring any bottom decorations such as the input method. It is recommended that this height be the maximum for the popup's height, otherwise it is possible that the popup will be clipped.

Parameters
anchor View: The view on which the popup window must be anchored. This value cannot be null.
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
Return
Int The maximum available height for the popup to be completely shown.

getOverlapAnchor

Added in API level 23
open fun getOverlapAnchor(): Boolean

Returns whether the popup window should overlap its anchor view when displayed as a drop-down.

Return
Boolean Whether the popup should overlap its anchor.

getWidth

Added in API level 1
open fun getWidth(): Int

Returns the popup's requested width. May be a layout constant such as LayoutParams.WRAP_CONTENT or LayoutParams.MATCH_PARENT.

The actual size of the popup may depend on other factors such as clipping and window layout.

Return
Int the popup width in pixels or a layout constant

See Also

getWindowLayoutType

Added in API level 23
open fun getWindowLayoutType(): Int

Returns the layout type for this window.

isAboveAnchor

Added in API level 3
open fun isAboveAnchor(): Boolean

Indicates whether the popup is showing above (the y coordinate of the popup's bottom is less than the y coordinate of the anchor) or below the anchor view (the y coordinate of the popup is greater than y coordinate of the anchor's bottom). The value returned by this method is meaningful only after showAsDropDown(android.view.View) or showAsDropDown(android.view.View,int,int) was invoked.

Return
Boolean True if this popup is showing above the anchor view, false otherwise.

isAttachedInDecor

Added in API level 22
open fun isAttachedInDecor(): Boolean

Indicates whether the popup window will be attached in the decor frame of its parent window.

Return
Boolean true if the window will be attached to the decor frame of its parent window.

isClippedToScreen

Added in API level 29
open fun isClippedToScreen(): Boolean

Indicates whether this popup will be clipped to the screen and not to the containing window

Return
Boolean true if popup will be clipped to the screen instead of the window, false otherwise

isClippingEnabled

Added in API level 3
open fun isClippingEnabled(): Boolean

Indicates whether clipping of the popup window is enabled.

Return
Boolean true if the clipping is enabled, false otherwise

isFocusable

Added in API level 1
open fun isFocusable(): Boolean

Indicate whether the popup window can grab the focus.

Return
Boolean true if the popup is focusable, false otherwise

isLaidOutInScreen

Added in API level 29
open fun isLaidOutInScreen(): Boolean

Indicates whether the popup window will be forced into using absolute screen coordinates for positioning.

Return
Boolean true if the window will always be positioned in screen coordinates.

isOutsideTouchable

Added in API level 3
open fun isOutsideTouchable(): Boolean

Indicates whether the popup window will be informed of touch events outside of its window.

Return
Boolean true if the popup is outside touchable, false otherwise

isShowing

Added in API level 1
open fun isShowing(): Boolean

Indicate whether this popup window is showing on screen.

Return
Boolean true if the popup is showing, false otherwise

isSplitTouchEnabled

Added in API level 11
open fun isSplitTouchEnabled(): Boolean

Indicates whether the popup window supports splitting touches.

Return
Boolean true if the touch splitting is enabled, false otherwise

isTouchModal

Added in API level 29
open fun isTouchModal(): Boolean

Indicates whether outside touches will be sent to this window or other windows behind it

Return
Boolean true if touches will be sent to this window, false otherwise

isTouchable

Added in API level 3
open fun isTouchable(): Boolean

Indicates whether the popup window receives touch events.

Return
Boolean true if the popup is touchable, false otherwise

setAnimationStyle

Added in API level 1
open fun setAnimationStyle(animationStyle: Int): Unit

Change the animation style resource for this popup.

If the popup is showing, calling this method will take effect only the next time the popup is shown or through a manual call to one of the update() methods.

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.

See Also

setAttachedInDecor

Added in API level 22
open fun setAttachedInDecor(enabled: Boolean): Unit

This will attach the popup window to the decor frame of the parent window to avoid overlaping with screen decorations like the navigation bar. Overrides the default behavior of the flag WindowManager.LayoutParams.FLAG_LAYOUT_ATTACHED_IN_DECOR.

By default the flag is set on SDK version Build.VERSION_CODES.LOLLIPOP_MR1 or greater and cleared on lesser SDK versions.

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

setBackgroundDrawable

Added in API level 1
open fun setBackgroundDrawable(background: Drawable!): Unit

Specifies the background drawable for this popup window. The background can be set to null.

Parameters
background Drawable!: the popup's background

See Also

setClippingEnabled

Added in API level 3
open fun setClippingEnabled(enabled: Boolean): Unit

Allows the popup window to extend beyond the bounds of the screen. By default the window is clipped to the screen boundaries. Setting this to false will allow windows to be accurately positioned.

If the popup is showing, calling this method will take effect only the next time the popup is shown or through a manual call to one of the update() methods.

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

setContentView

Added in API level 1
open fun setContentView(contentView: View!): Unit

Change the popup's content. The content is represented by an instance of android.view.View.

This method has no effect if called when the popup is showing.

Parameters
contentView View!: the new content for the popup

setElevation

Added in API level 21
open fun setElevation(elevation: Float): Unit

Specifies the elevation for this popup window.

Parameters
elevation Float: the popup's elevation in pixels

See Also

setEnterTransition

Added in API level 23
open fun setEnterTransition(enterTransition: Transition?): Unit

Sets the enter transition to be used when the popup window is shown.

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

setEpicenterBounds

Added in API level 29
open fun setEpicenterBounds(bounds: Rect?): Unit

Sets the bounds used as the epicenter of the enter and exit transitions.

Transitions use Rect, referred to as the epicenter, to orient the direction of travel. For popup windows, the anchor view bounds are used as the default epicenter.

See Transition.setEpicenterCallback(EpicenterCallback) for more information about how transition epicenters work.

Parameters
bounds Rect?: the epicenter bounds relative to the anchor view, or null to use the default epicenter

setExitTransition

Added in API level 23
open fun setExitTransition(exitTransition: Transition?): Unit

Sets the exit transition to be used when the popup window is dismissed.

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

setFocusable

Added in API level 1
open fun setFocusable(focusable: Boolean): Unit

Changes the focusability of the popup window. When focusable, the window will grab the focus from the current focused widget if the popup contains a focusable android.view.View. By default a popup window is not focusable.

If the popup is showing, calling this method will take effect only the next time the popup is shown or through a manual call to one of the update() methods.

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

setHeight

Added in API level 1
open fun setHeight(height: Int): Unit

Sets the popup's requested height. May be a layout constant such as LayoutParams.WRAP_CONTENT or LayoutParams.MATCH_PARENT.

The actual size of the popup may depend on other factors such as clipping and window layout.

If the popup is showing, calling this method will take effect the next time the popup is shown.

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

setIgnoreCheekPress

Added in API level 1
open fun setIgnoreCheekPress(): Unit

Set the flag on popup to ignore cheek press events; by default this flag is set to false which means the popup will not ignore cheek press dispatch events.

If the popup is showing, calling this method will take effect only the next time the popup is shown or through a manual call to one of the update() methods.

See Also

setInputMethodMode

Added in API level 3
open fun setInputMethodMode(mode: Int): Unit

Control how the popup operates with an input method: one of INPUT_METHOD_FROM_FOCUSABLE, INPUT_METHOD_NEEDED, or INPUT_METHOD_NOT_NEEDED.

If the popup is showing, calling this method will take effect only the next time the popup is shown or through a manual call to one of the update() methods.

setIsClippedToScreen

Added in API level 29
open fun setIsClippedToScreen(enabled: Boolean): Unit

Clip this popup window to the screen, but not to the containing window.

If the popup is showing, calling this method will take effect only the next time the popup is shown or through a manual call to one of the update() methods.

Parameters
enabled Boolean: true to clip to the screen.

setIsLaidOutInScreen

Added in API level 29
open fun setIsLaidOutInScreen(enabled: Boolean): Unit

Allows the popup window to force the flag WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, overriding default behavior. This will cause the popup to be positioned in absolute screen coordinates.

Parameters
enabled Boolean: true if the popup should always be positioned in screen coordinates

setOnDismissListener

Added in API level 1
open fun setOnDismissListener(onDismissListener: PopupWindow.OnDismissListener!): Unit

Sets the listener to be called when the window is dismissed.

Parameters
onDismissListener PopupWindow.OnDismissListener!: The listener.

setOutsideTouchable

Added in API level 3
open fun setOutsideTouchable(touchable: Boolean): Unit

Controls whether the pop-up will be informed of touch events outside of its window. This only makes sense for pop-ups that are touchable but not focusable, which means touches outside of the window will be delivered to the window behind. The default is false.

If the popup is showing, calling this method will take effect only the next time the popup is shown or through a manual call to one of the update() methods.

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

setOverlapAnchor

Added in API level 23
open fun setOverlapAnchor(overlapAnchor: Boolean): Unit

Sets whether the popup window should overlap its anchor view when displayed as a drop-down.

If the popup is showing, calling this method will take effect only the next time the popup is shown.

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

setSplitTouchEnabled

Added in API level 11
open fun setSplitTouchEnabled(enabled: Boolean): Unit

Allows the popup window to split touches across other windows that also support split touch. When this flag is false, the first pointer that goes down determines the window to which all subsequent touches go until all pointers go up. When this flag is true, each pointer (not necessarily the first) that goes down determines the window to which all subsequent touches of that pointer will go until that pointer goes up thereby enabling touches with multiple pointers to be split across multiple windows.

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

setTouchInterceptor

Added in API level 3
open fun setTouchInterceptor(l: View.OnTouchListener!): Unit

Set a callback for all touch events being dispatched to the popup window.

setTouchModal

Added in API level 29
open fun setTouchModal(touchModal: Boolean): Unit

Set whether this window is touch modal or if outside touches will be sent to other windows behind it.

If the popup is showing, calling this method will take effect only the next time the popup is shown or through a manual call to one of the update() methods.

Parameters
touchModal Boolean: true to sent all outside touches to this window, false to other windows behind it

See Also

setTouchable

Added in API level 3
open fun setTouchable(touchable: Boolean): Unit

Changes the touchability of the popup window. When touchable, the window will receive touch events, otherwise touch events will go to the window below it. By default the window is touchable.

If the popup is showing, calling this method will take effect only the next time the popup is shown or through a manual call to one of the update() methods.

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

setWidth

Added in API level 1
open fun setWidth(width: Int): Unit

Sets the popup's requested width. May be a layout constant such as LayoutParams.WRAP_CONTENT or LayoutParams.MATCH_PARENT.

The actual size of the popup may depend on other factors such as clipping and window layout.

If the popup is showing, calling this method will take effect the next time the popup is shown.

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

setWindowLayoutMode

Added in API level 3
Deprecated in API level 23
open fun setWindowLayoutMode(
    widthSpec: Int,
    heightSpec: Int
): Unit

Deprecated: Use setWidth(int) and setHeight(int).

Change the width and height measure specs that are given to the window manager by the popup. By default these are 0, meaning that the current width or height is requested as an explicit size from the window manager. You can supply ViewGroup.LayoutParams.WRAP_CONTENT or ViewGroup.LayoutParams.MATCH_PARENT to have that measure spec supplied instead, replacing the absolute width and height that has been set in the popup.

If the popup is showing, calling this method will take effect only the next time the popup is shown.

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

setWindowLayoutType

Added in API level 23
open fun setWindowLayoutType(layoutType: Int): Unit

Set the layout type for this window.

See WindowManager.LayoutParams.type for possible values.

Parameters
layoutType Int: Layout type for this window.

showAsDropDown

Added in API level 1
open fun showAsDropDown(anchor: View!): Unit

Display the content view in a popup window anchored to the bottom-left corner of the anchor view. If there is not enough room on screen to show the popup in its entirety, this method tries to find a parent scroll view to scroll. If no parent scroll view can be scrolled, the bottom-left corner of the popup is pinned at the top left corner of the anchor view.

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

See Also

showAsDropDown

Added in API level 1
open fun showAsDropDown(
    anchor: View!,
    xoff: Int,
    yoff: Int
): Unit

Display the content view in a popup window anchored to the bottom-left corner of the anchor view offset by the specified x and y coordinates. If there is not enough room on screen to show the popup in its entirety, this method tries to find a parent scroll view to scroll. If no parent scroll view can be scrolled, the bottom-left corner of the popup is pinned at the top left corner of the anchor view.

If the view later scrolls to move anchor to a different location, the popup will be moved correspondingly.

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

See Also

showAsDropDown

Added in API level 19
open fun showAsDropDown(
    anchor: View!,
    xoff: Int,
    yoff: Int,
    gravity: Int
): Unit

Displays the content view in a popup window anchored to the corner of another view. The window is positioned according to the specified gravity and offset by the specified x and y coordinates.

If there is not enough room on screen to show the popup in its entirety, this method tries to find a parent scroll view to scroll. If no parent view can be scrolled, the specified vertical gravity will be ignored and the popup will anchor itself such that it is visible.

If the view later scrolls to move anchor to a different location, the popup will be moved correspondingly.

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

See Also

showAtLocation

Added in API level 1
open fun showAtLocation(
    parent: View!,
    gravity: Int,
    x: Int,
    y: Int
): Unit

Display the content view in a popup window at the specified location. If the popup window cannot fit on screen, it will be clipped. See android.view.WindowManager.LayoutParams for more information on how gravity and the x and y parameters are related. Specifying a gravity of android.view.Gravity#NO_GRAVITY is similar to specifying Gravity.LEFT | Gravity.TOP.

Parameters
parent View!: a parent view to get the android.view.View#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 3
open fun update(): Unit

Updates the state of the popup window, if it is currently being displayed, from the currently set state.

This includes:

update

Added in API level 1
open fun update(
    anchor: View!,
    width: Int,
    height: Int
): Unit

Updates the position and the dimension of the popup window.

Calling this function also updates the window with the current popup state as described for 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
open fun update(
    anchor: View!,
    xoff: Int,
    yoff: Int,
    width: Int,
    height: Int
): Unit

Updates the position and the dimension of the popup window.

Width and height can be set to -1 to update location only. Calling this function also updates the window with the current popup state as described for update().

If the view later scrolls to move anchor to a different location, the popup will be moved correspondingly.

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
open fun update(
    width: Int,
    height: Int
): Unit

Updates the dimension of the popup window.

Calling this function also updates the window with the current popup state as described for 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 1
open fun update(
    x: Int,
    y: Int,
    width: Int,
    height: Int
): Unit

Updates the position and the dimension of the popup window.

Width and height can be set to -1 to update location only. Calling this function also updates the window with the current popup state as described for 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

update

Added in API level 3
open fun update(
    x: Int,
    y: Int,
    width: Int,
    height: Int,
    force: Boolean
): Unit

Updates the position and the dimension of the popup window.

Width and height can be set to -1 to update location only. Calling this function also updates the window with the current popup state as described for 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