PopupMenu
public 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 |
|---|
public interface PopupMenu.OnDismissListenerCallback interface used to notify the application that the menu has closed. |
public interface PopupMenu.OnMenuItemClickListenerInterface responsible for receiving menu item click events if the items themselves do not have individual item click listeners. |
Public constructors |
|---|
|
Constructor to create a new popup menu with an anchor view. |
|
Constructor to create a new popup menu with an anchor view and alignment gravity. |
PopupMenu(Constructor a create a new popup menu with a specific style. |
Public methods |
|
|---|---|
void |
dismiss()Dismiss the menu popup. |
@NonNull View.OnTouchListener |
Returns an |
int |
|
@NonNull Menu |
getMenu()Returns the |
@NonNull MenuInflater |
|
void |
Inflate a menu resource into this PopupMenu. |
void |
setForceShowIcon(boolean forceShowIcon)Sets whether the popup menu's adapter is forced to show icons in the menu item views. |
void |
setGravity(int gravity)Sets the gravity used to align the popup window to its anchor view. |
void |
Sets a listener that will be notified when this menu is dismissed. |
void |
Sets 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. |
Public constructors
PopupMenu
public PopupMenu(@NonNull Context context, @NonNull View anchor)
Constructor to create a new popup menu with an anchor view.
PopupMenu
public PopupMenu(@NonNull Context context, @NonNull View anchor, int gravity)
Constructor to create a new popup menu with an anchor view and alignment gravity.
| Parameters | |
|---|---|
@NonNull Context context |
Context the popup menu is running in, through which it can access the current theme, resources, etc. |
@NonNull View anchor |
Anchor view for this popup. The popup will appear below the anchor if there is room, or above it if there is not. |
int gravity |
The |
PopupMenu
public PopupMenu(
@NonNull Context context,
@NonNull View anchor,
int gravity,
@AttrRes int popupStyleAttr,
@StyleRes int popupStyleRes
)
Constructor a create a new popup menu with a specific style.
| Parameters | |
|---|---|
@NonNull Context context |
Context the popup menu is running in, through which it can access the current theme, resources, etc. |
@NonNull View anchor |
Anchor view for this popup. The popup will appear below the anchor if there is room, or above it if there is not. |
int gravity |
The |
@AttrRes int 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. |
@StyleRes int 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
getDragToOpenListener
public @NonNull 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 | |
|---|---|
@NonNull View.OnTouchListener |
a touch listener that controls drag-to-open behavior |
getGravity
public int getGravity()
| Returns | |
|---|---|
int |
the gravity used to align the popup window to its anchor view |
| See also | |
|---|---|
setGravity |
getMenu
public @NonNull Menu getMenu()
Returns the Menu associated with this popup. Populate the returned Menu with items before calling show.
| See also | |
|---|---|
show |
|
getMenuInflater |
getMenuInflater
public @NonNull MenuInflater getMenuInflater()
| Returns | |
|---|---|
@NonNull MenuInflater |
a |
| See also | |
|---|---|
getMenu |
inflate
public void inflate(@MenuRes int menuRes)
Inflate a menu resource into this PopupMenu. This is equivalent to calling popupMenu.getMenuInflater().inflate(menuRes, popupMenu.getMenu()).
| Parameters | |
|---|---|
@MenuRes int menuRes |
Menu resource to inflate |
setForceShowIcon
public void setForceShowIcon(boolean forceShowIcon)
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 | |
|---|---|
boolean forceShowIcon |
|
setGravity
public void setGravity(int gravity)
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 | |
|---|---|
int gravity |
the gravity used to align the popup window |
| See also | |
|---|---|
getGravity |
setOnDismissListener
public void setOnDismissListener(@Nullable PopupMenu.OnDismissListener listener)
Sets a listener that will be notified when this menu is dismissed.
| Parameters | |
|---|---|
@Nullable PopupMenu.OnDismissListener listener |
the listener to notify |
setOnMenuItemClickListener
public void setOnMenuItemClickListener(
@Nullable PopupMenu.OnMenuItemClickListener listener
)
Sets a listener that will be notified when the user selects an item from the menu.
| Parameters | |
|---|---|
@Nullable PopupMenu.OnMenuItemClickListener listener |
the listener to notify |