compat/src/main/java/androidx/core/widget/ListPopupWindowCompat.java
@Nullable
    public static OnTouchListener createDragToOpenListener(
            @NonNull ListPopupWindow listPopupWindow, @NonNull View src) {
        if (Build.VERSION.SDK_INT >= 19) {
            return listPopupWindow.createDragToOpenListener(src);
        } else {
            return null;
        }
    }
/**
     * On API {@link android.os.Build.VERSION_CODES#KITKAT} and higher, returns
     * an {@link OnTouchListener} that can be added to the source view to
     * implement drag-to-open behavior. Generally, the source view should be the
     * same view that was passed to ListPopupWindow.setAnchorView(View).
     * <p>
     * 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.
     * <p>
     * Example usage:
     *
     * <pre>
     * ListPopupWindow myPopup = new ListPopupWindow(context);
     * myPopup.setAnchor(myAnchor);
     * OnTouchListener dragListener = myPopup.createDragToOpenListener(myAnchor);
     * myAnchor.setOnTouchListener(dragListener);
     * </pre>
     *
     * @param listPopupWindow the ListPopupWindow against which to invoke the
     *            method
     * @param src the view on which the resulting listener will be set
     * @return a touch listener that controls drag-to-open behavior, or {@code null} on
     *         unsupported APIs
     */
On API  android.os.Build.VERSION_CODES#KITKAT and higher, returns
an  OnTouchListener that can be added to the source view to
implement drag-to-open behavior. Generally, the source view should be the
same view that was passed to ListPopupWindow.setAnchorView(View).

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.



@param listPopupWindow the ListPopupWindow against which to invoke the
method
@param src the view on which the resulting listener will be set
@return a touch listener that controls drag-to-open behavior, or  null on
unsupported APIs
On API android . os . Build . VERSION_CODES#KITKAT and higher returns an OnTouchListener that can be added to the source view to implement drag - to - open behavior . Generally the source view should be the same view that was passed to ListPopupWindow . setAnchorView ( View ) . 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 . @param listPopupWindow the ListPopupWindow against which to invoke the method @param src the view on which the resulting listener will be set @return a touch listener that controls drag - to - open behavior or null on unsupported APIs
@Nullable
    public static OnTouchListener createDragToOpenListener(
            @NonNull ListPopupWindow listPopupWindow, @NonNull View src) {
        if (Build.VERSION.SDK_INT >= 19) {
            return listPopupWindow.createDragToOpenListener(src);
        } else {
            return null;
        }
    }
@ Nullable public static OnTouchListener createDragToOpenListener ( @ NonNull ListPopupWindow listPopupWindow , @ NonNull View src ) { if ( Build . VERSION . SDK_INT >= 19 ) { return listPopupWindow . createDragToOpenListener ( src ) ; } else { return null ; } }
On API {@link android.os.Build.VERSION_CODES#KITKAT} and higher, returns
 an {@link OnTouchListener} that can be added to the source view to
 implement drag-to-open behavior.
On API { @link android . os . Build . VERSION_CODES#KITKAT } and higher returns an { @link OnTouchListener } that can be added to the source view to implement drag - to - open behavior .