code: public void startDragging(final int position) {
          if (mMobileItemId != INVALID_ID) {
              /* We are already dragging */
              return;
          }
  
          if (mLastMotionEventY < 0) {
              throw new IllegalStateException("User must be touching the DynamicListView!");
          }
  
          if (mAdapter == null) {
              throw new IllegalStateException("This DynamicListView has no adapter set!");
          }
  
          if (position < 0 || position >= mAdapter.getCount()) {
              /* Out of bounds */
              return;
          }
  
  
          mMobileView = mWrapper.getChildAt(position - mWrapper.getFirstVisiblePosition() + mWrapper.getHeaderViewsCount());
          if (mMobileView != null) {
              mOriginalMobileItemPosition = position;
              mMobileItemId = mAdapter.getItemId(position);
              mHoverDrawable = new HoverDrawable(mMobileView, mLastMotionEventY);
              mMobileView.setVisibility(View.INVISIBLE);
          }
      }
docs: Starts dragging the item at given position. User must be touching this {@code DynamicListView}.
  
  @param position the position of the item in the adapter to start dragging. Be sure to subtract any header views.
  
  @throws java.lang.IllegalStateException if the user is not touching this {@code DynamicListView},
  or if there is no adapter set.