@SuppressLint("ClickableViewAccessibility")
    protected void registerStartDrag(final RecyclerView.ViewHolder viewHolder, final View button) {
        if (this.touchHelper == null) {
            return;
        }

        //special handling for "normal" case (where button is imageview with standard c:geo drag/drop image)
        if (button instanceof ImageView) {
            ((ImageView) button).setImageResource(R.drawable.ic_menu_reorder);
        }

        button.setOnTouchListener((v, e) -> {
            if (e.getActionMasked() == MotionEvent.ACTION_DOWN) {
                this.touchHelper.startDrag(viewHolder);
            }
            return false;
        });
    }
Use this method inside implementations of {@link #onCreateViewHolder(ViewGroup, int)} to
register a GUI element as "start drag" action field
main/src/main/java/cgeo/geocaching/ui/recyclerview/ManagedListAdapter.java