Android APIs
public class

PopupMenu

extends Object
java.lang.Object
   ↳ android.support.v7.widget.PopupMenu

Class Overview

Static library support version of the framework's 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 Classes
interface PopupMenu.OnDismissListener Callback interface used to notify the application that the menu has closed. 
interface PopupMenu.OnMenuItemClickListener Interface responsible for receiving menu item click events if the items themselves do not have individual item click listeners. 
Public Constructors
PopupMenu(Context context, View anchor)
Construct a new PopupMenu.
PopupMenu(Context context, View anchor, int gravity)
Constructor to create a new popup menu with an anchor view and alignment gravity.
PopupMenu(Context context, View anchor, int gravity, int popupStyleAttr, int popupStyleRes)
Constructor a create a new popup menu with a specific style.
Public Methods
void dismiss()
Dismiss the menu popup.
View.OnTouchListener getDragToOpenListener()
Returns an View.OnTouchListener that can be added to the anchor view to implement drag-to-open behavior.
Menu getMenu()
MenuInflater getMenuInflater()
void inflate(int menuRes)
Inflate a menu resource into this PopupMenu.
abstract void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing)
Called when a menu is closing.
abstract boolean onMenuItemSelected(MenuBuilder menu, MenuItem item)
Called when a menu item is selected.
abstract void onMenuModeChange(MenuBuilder menu)
Called when the mode of the menu changes (for example, from icon to expanded).
abstract boolean onOpenSubMenu(MenuBuilder subMenu)
Called when a submenu opens.
void setOnDismissListener(PopupMenu.OnDismissListener listener)
Set a listener that will be notified when this menu is dismissed.
void setOnMenuItemClickListener(PopupMenu.OnMenuItemClickListener listener)
Set a listener that will be notified when the user selects an item from the menu.
void show()
Show the menu popup anchored to the view specified during construction.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public PopupMenu (Context context, View anchor)

Construct a new PopupMenu.

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

public PopupMenu (Context context, View anchor, int gravity)

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

Parameters
context Context the popup menu is running in, through which it can access the current theme, resources, etc.
anchor Anchor view for this popup. The popup will appear below the anchor if there is room, or above it if there is not.
gravity The Gravity value for aligning the popup with its anchor.

public PopupMenu (Context context, View anchor, int gravity, int popupStyleAttr, int popupStyleRes)

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

Parameters
context Context the popup menu is running in, through which it can access the current theme, resources, etc.
anchor Anchor view for this popup. The popup will appear below the anchor if there is room, or above it if there is not.
gravity The Gravity value for aligning the popup with its anchor.
popupStyleAttr 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 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 Methods

public void dismiss ()

Dismiss the menu popup.

See Also

public View.OnTouchListener getDragToOpenListener ()

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
  • a touch listener that controls drag-to-open behavior

public Menu getMenu ()

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

public MenuInflater getMenuInflater ()

Returns
See Also

public void inflate (int menuRes)

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

Parameters
menuRes Menu resource to inflate

public abstract void onCloseMenu (MenuBuilder menu, boolean allMenusAreClosing)

Called when a menu is closing.

public abstract boolean onMenuItemSelected (MenuBuilder menu, MenuItem item)

Called when a menu item is selected.

Parameters
menu The menu that is the parent of the item
item The menu item that is selected
Returns
  • whether the menu item selection was handled

public abstract void onMenuModeChange (MenuBuilder menu)

Called when the mode of the menu changes (for example, from icon to expanded).

Parameters
menu the menu that has changed modes

public abstract boolean onOpenSubMenu (MenuBuilder subMenu)

Called when a submenu opens. Useful for notifying the application of menu state so that it does not attempt to hide the action bar while a submenu is open or similar.

Parameters
subMenu Submenu currently being opened
Returns
  • true if the Callback will handle presenting the submenu, false if the presenter should attempt to do so.

public void setOnDismissListener (PopupMenu.OnDismissListener listener)

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

Parameters
listener Listener to notify

public void setOnMenuItemClickListener (PopupMenu.OnMenuItemClickListener listener)

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

Parameters
listener Listener to notify

public void show ()

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

See Also