PopupMenu

class PopupMenu


Static library support version of the framework's android.widget.PopupMenu. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.

Summary

Nested types

Callback interface used to notify the application that the menu has closed.

Interface responsible for receiving menu item click events if the items themselves do not have individual item click listeners.

Public constructors

PopupMenu(context: Context, anchor: View)

Constructor to create a new popup menu with an anchor view.

PopupMenu(context: Context, anchor: View, gravity: Int)

Constructor to create a new popup menu with an anchor view and alignment gravity.

PopupMenu(
    context: Context,
    anchor: View,
    gravity: Int,
    popupStyleAttr: @AttrRes Int,
    popupStyleRes: @StyleRes Int
)

Constructor a create a new popup menu with a specific style.

Public functions

Unit

Dismiss the menu popup.

View.OnTouchListener

Returns an View.OnTouchListener that can be added to the anchor view to implement drag-to-open behavior.

Int
Menu

Returns the Menu associated with this popup.

MenuInflater
Unit
inflate(menuRes: @MenuRes Int)

Inflate a menu resource into this PopupMenu.

Unit
setForceShowIcon(forceShowIcon: Boolean)

Sets whether the popup menu's adapter is forced to show icons in the menu item views.

Unit
setGravity(gravity: Int)

Sets the gravity used to align the popup window to its anchor view.

Unit

Sets a listener that will be notified when this menu is dismissed.

Unit

Sets a listener that will be notified when the user selects an item from the menu.

Unit

Show the menu popup anchored to the view specified during construction.

Public constructors

PopupMenu

Added in 1.1.0
PopupMenu(context: Context, anchor: View)

Constructor to create a new popup menu with an anchor view.

Parameters
context: Context

Context the popup menu is running in, through which it can access the current theme, resources, etc.

anchor: View

Anchor view for this popup. The popup will appear below the anchor if there is room, or above it if there is not.

PopupMenu

Added in 1.1.0
PopupMenu(context: Context, anchor: View, gravity: Int)

Constructor to create a new popup menu with an anchor view and alignment gravity.

Parameters
context: Context

Context the popup menu is running in, through which it can access the current theme, resources, etc.

anchor: View

Anchor view for this popup. The popup will appear below the anchor if there is room, or above it if there is not.

gravity: Int

The Gravity value for aligning the popup with its anchor.

PopupMenu

Added in 1.1.0
PopupMenu(
    context: Context,
    anchor: View,
    gravity: Int,
    popupStyleAttr: @AttrRes Int,
    popupStyleRes: @StyleRes Int
)

Constructor a create a new popup menu with a specific style.

Parameters
context: Context

Context the popup menu is running in, through which it can access the current theme, resources, etc.

anchor: View

Anchor view for this popup. The popup will appear below the anchor if there is room, or above it if there is not.

gravity: Int

The Gravity value for aligning the popup with its anchor.

popupStyleAttr: @AttrRes Int

An attribute in the current theme that contains a reference to a style resource that supplies default values for the popup window. Can be 0 to not look for defaults.

popupStyleRes: @StyleRes Int

A resource identifier of a style resource that supplies default values for the popup window, used only if popupStyleAttr is 0 or can not be found in the theme. Can be 0 to not look for defaults.

Public functions

dismiss

Added in 1.1.0
fun dismiss(): Unit

Dismiss the menu popup.

See also
show

getDragToOpenListener

Added in 1.1.0
fun getDragToOpenListener(): View.OnTouchListener

Returns an View.OnTouchListener that can be added to the anchor view to implement drag-to-open behavior.

When the listener is set on a view, touching that view and dragging outside of its bounds will open the popup window. Lifting will select the currently touched list item.

Example usage:

PopupMenu myPopup = new PopupMenu(context, myAnchor);
myAnchor.setOnTouchListener(myPopup.getDragToOpenListener());
Returns
View.OnTouchListener

a touch listener that controls drag-to-open behavior

getGravity

Added in 1.1.0
fun getGravity(): Int
Returns
Int

the gravity used to align the popup window to its anchor view

See also
setGravity

getMenu

Added in 1.1.0
fun getMenu(): Menu

Returns the Menu associated with this popup. Populate the returned Menu with items before calling show.

Returns
Menu

the Menu associated with this popup

getMenuInflater

Added in 1.1.0
fun getMenuInflater(): MenuInflater
Returns
MenuInflater

a MenuInflater that can be used to inflate menu items from XML into the menu returned by getMenu

See also
getMenu

inflate

Added in 1.1.0
fun inflate(menuRes: @MenuRes Int): Unit

Inflate a menu resource into this PopupMenu. This is equivalent to calling popupMenu.getMenuInflater().inflate(menuRes, popupMenu.getMenu()).

Parameters
menuRes: @MenuRes Int

Menu resource to inflate

setForceShowIcon

Added in 1.4.0
fun setForceShowIcon(forceShowIcon: Boolean): Unit

Sets whether the popup menu's adapter is forced to show icons in the menu item views.

Changes take effect on the next call to show().

Parameters
forceShowIcon: Boolean

true to force icons to be shown, or false for icons to be optionally shown

setGravity

Added in 1.1.0
fun setGravity(gravity: Int): Unit

Sets the gravity used to align the popup window to its anchor view.

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

Parameters
gravity: Int

the gravity used to align the popup window

See also
getGravity

setOnDismissListener

Added in 1.1.0
fun setOnDismissListener(listener: PopupMenu.OnDismissListener?): Unit

Sets a listener that will be notified when this menu is dismissed.

Parameters
listener: PopupMenu.OnDismissListener?

the listener to notify

setOnMenuItemClickListener

Added in 1.1.0
fun setOnMenuItemClickListener(listener: PopupMenu.OnMenuItemClickListener?): Unit

Sets a listener that will be notified when the user selects an item from the menu.

Parameters
listener: PopupMenu.OnMenuItemClickListener?

the listener to notify

show

Added in 1.1.0
fun show(): Unit

Show the menu popup anchored to the view specified during construction.

See also
dismiss