# PopupMenuCompat

# PopupMenuCompat

Artifact:[androidx.core:core](https://developer.android.com/jetpack/androidx/releases/core)  
[View Source](https://cs.android.com/search?q=file:androidx/core/widget/PopupMenuCompat.java+class:androidx.core.widget.PopupMenuCompat)  
Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/core#1.1.0)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/core/widget/PopupMenuCompat "View this page in Java")

<br />

```
class PopupMenuCompat
```

<br />

*** ** * ** ***

Helper for accessing features in[PopupMenu](https://developer.android.com/reference/android/widget/PopupMenu.html).

## Summary

|                                                  ### Public functions                                                   |
|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `java-static `[View.OnTouchListener](https://developer.android.com/reference/android/view/View.OnTouchListener.html)`?` | [getDragToOpenListener](https://developer.android.com/reference/kotlin/androidx/core/widget/PopupMenuCompat#getDragToOpenListener(java.lang.Object))`(popupMenu: `[Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)`)` On API[KITKAT](https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#KITKAT())and higher, returns an[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. |

## Public functions

### getDragToOpenListener

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/core#1.1.0)  

```
java-static fun getDragToOpenListener(popupMenu: Any): View.OnTouchListener?
```

On API[KITKAT](https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#KITKAT())and higher, returns an[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.

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:  

```kotlin
PopupMenu myPopup = new PopupMenu(context, myAnchor);
myAnchor.setOnTouchListener(PopupMenuCompat.getDragToOpenListener(myPopup));
```  

|                                        Parameters                                        |
|------------------------------------------------------------------------------------------|--------------------------------------------------|
| `popupMenu: `[Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) | the PopupMenu against which to invoke the method |

|                                                  Returns                                                  |
|-----------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
| [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 |