On API KITKAT and higher, 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(PopupMenuCompat.getDragToOpenListener(myPopup));
Parameters
popupMenu
Object: the PopupMenu against which to invoke the method
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[],null,["# PopupMenuCompat\n\nadded in [version 22.1.0](/topic/libraries/support-library/revisions) \nbelongs to Maven artifact com.android.support:support-compat:28.0.0-alpha1 \nSummary: [Methods](#pubmethods) \\| [Inherited Methods](#inhmethods) \\| [\\[Expand All\\]](#) \n\nPopupMenuCompat\n===============\n\n| This package is part of the Android [support library](/topic/libraries/support-library) which is no longer maintained. The support library has been superseded by [AndroidX](/jetpack/androidx) which is part of [Jetpack](/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider [migrating](/jetpack/androidx/migrate) existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library [class\n| mappings](/jetpack/androidx/migrate/class-mappings).\n\n\n`\npublic\n\nfinal\n\nclass\nPopupMenuCompat\n`\n\n\n`\n\nextends Object\n\n\n`\n\n`\n\n\n`\n\n|---|-------------------------------------------|\n| java.lang.Object ||\n| ↳ | android.support.v4.widget.PopupMenuCompat |\n\n\u003cbr /\u003e\n\n*** ** * ** ***\n\nHelper for accessing features in [PopupMenu](https://developer.android.com/reference/android/widget/PopupMenu.html).\n\nSummary\n-------\n\n| ### Public methods ||\n|------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ` static `[View.OnTouchListener](https://developer.android.com/reference/android/view/View.OnTouchListener.html) | ` `[getDragToOpenListener](/reference/android/support/v4/widget/PopupMenuCompat#getDragToOpenListener(java.lang.Object))`(Object popupMenu) ` On API [KITKAT](https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#KITKAT) and higher, returns an [View.OnTouchListener](https://developer.android.com/reference/android/view/View.OnTouchListener.html) that can be added to the anchor view to implement drag-to-open behavior. |\n\n| ### Inherited methods |\n|-----------------------|---|\n| From class ` java.lang.Object ` |-------------------|-------------------------------| | ` Object` | ` clone() ` | | ` boolean` | ` equals(Object arg0) ` | | ` void` | ` finalize() ` | | ` final Class\u003c?\u003e` | ` getClass() ` | | ` int` | ` hashCode() ` | | ` final void` | ` notify() ` | | ` final void` | ` notifyAll() ` | | ` String` | ` toString() ` | | ` final void` | ` wait(long arg0, int arg1) ` | | ` final void` | ` wait(long arg0) ` | | ` final void` | ` wait() ` | ||\n\nPublic methods\n--------------\n\n### getDragToOpenListener\n\nadded in [version 22.1.0](/topic/libraries/support-library/revisions) \n\n```\nView.OnTouchListener getDragToOpenListener (Object popupMenu)\n```\n\nOn API [KITKAT](https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#KITKAT) and higher, returns\nan [View.OnTouchListener](https://developer.android.com/reference/android/view/View.OnTouchListener.html) that can be added to the anchor view to\nimplement drag-to-open behavior.\n\n\nWhen the listener is set on a view, touching that view and dragging\noutside of its bounds will open the popup window. Lifting will select the\ncurrently touched list item.\n\n\nExample usage: \n\n```\n PopupMenu myPopup = new PopupMenu(context, myAnchor);\n myAnchor.setOnTouchListener(PopupMenuCompat.getDragToOpenListener(myPopup));\n \n```\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Parameters ||\n|-------------|-------------------------------------------------------------------|\n| `popupMenu` | `Object`: the PopupMenu against which to invoke the method \u003cbr /\u003e |\n\n| Returns ||\n|--------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|\n| [View.OnTouchListener](https://developer.android.com/reference/android/view/View.OnTouchListener.html) | a touch listener that controls drag-to-open behavior, or `null` on unsupported APIs \u003cbr /\u003e |\n\n-\n\n Interfaces\n ----------\n\n - [DrawerLayout.DrawerListener](/reference/android/support/v4/widget/DrawerLayout.DrawerListener)\n - [NestedScrollView.OnScrollChangeListener](/reference/android/support/v4/widget/NestedScrollView.OnScrollChangeListener)\n - [SimpleCursorAdapter.CursorToStringConverter](/reference/android/support/v4/widget/SimpleCursorAdapter.CursorToStringConverter)\n - [SimpleCursorAdapter.ViewBinder](/reference/android/support/v4/widget/SimpleCursorAdapter.ViewBinder)\n - [SlidingPaneLayout.PanelSlideListener](/reference/android/support/v4/widget/SlidingPaneLayout.PanelSlideListener)\n - [SwipeRefreshLayout.OnChildScrollUpCallback](/reference/android/support/v4/widget/SwipeRefreshLayout.OnChildScrollUpCallback)\n - [SwipeRefreshLayout.OnRefreshListener](/reference/android/support/v4/widget/SwipeRefreshLayout.OnRefreshListener)\n - [TintableCompoundButton](/reference/android/support/v4/widget/TintableCompoundButton)\n-\n\n Classes\n -------\n\n - [AutoScrollHelper](/reference/android/support/v4/widget/AutoScrollHelper)\n - [CircularProgressDrawable](/reference/android/support/v4/widget/CircularProgressDrawable)\n - [CompoundButtonCompat](/reference/android/support/v4/widget/CompoundButtonCompat)\n - [ContentLoadingProgressBar](/reference/android/support/v4/widget/ContentLoadingProgressBar)\n - [CursorAdapter](/reference/android/support/v4/widget/CursorAdapter)\n - [DrawerLayout](/reference/android/support/v4/widget/DrawerLayout)\n - [DrawerLayout.LayoutParams](/reference/android/support/v4/widget/DrawerLayout.LayoutParams)\n - [DrawerLayout.SavedState](/reference/android/support/v4/widget/DrawerLayout.SavedState)\n - [DrawerLayout.SimpleDrawerListener](/reference/android/support/v4/widget/DrawerLayout.SimpleDrawerListener)\n - [EdgeEffectCompat](/reference/android/support/v4/widget/EdgeEffectCompat)\n - [ExploreByTouchHelper](/reference/android/support/v4/widget/ExploreByTouchHelper)\n - [ImageViewCompat](/reference/android/support/v4/widget/ImageViewCompat)\n - [ListPopupWindowCompat](/reference/android/support/v4/widget/ListPopupWindowCompat)\n - [ListViewAutoScrollHelper](/reference/android/support/v4/widget/ListViewAutoScrollHelper)\n - [ListViewCompat](/reference/android/support/v4/widget/ListViewCompat)\n - [NestedScrollView](/reference/android/support/v4/widget/NestedScrollView)\n - [PopupMenuCompat](/reference/android/support/v4/widget/PopupMenuCompat)\n - [PopupWindowCompat](/reference/android/support/v4/widget/PopupWindowCompat)\n - [ResourceCursorAdapter](/reference/android/support/v4/widget/ResourceCursorAdapter)\n - [ScrollerCompat](/reference/android/support/v4/widget/ScrollerCompat)\n - [SimpleCursorAdapter](/reference/android/support/v4/widget/SimpleCursorAdapter)\n - [SlidingPaneLayout](/reference/android/support/v4/widget/SlidingPaneLayout)\n - [SlidingPaneLayout.LayoutParams](/reference/android/support/v4/widget/SlidingPaneLayout.LayoutParams)\n - [SlidingPaneLayout.SimplePanelSlideListener](/reference/android/support/v4/widget/SlidingPaneLayout.SimplePanelSlideListener)\n - [Space](/reference/android/support/v4/widget/Space)\n - [SwipeRefreshLayout](/reference/android/support/v4/widget/SwipeRefreshLayout)\n - [TextViewCompat](/reference/android/support/v4/widget/TextViewCompat)\n - [ViewDragHelper](/reference/android/support/v4/widget/ViewDragHelper)\n - [ViewDragHelper.Callback](/reference/android/support/v4/widget/ViewDragHelper.Callback)"]]