private void dismissAbove(int position)
        {
            View view = AdapterViewUtil.getViewForPosition(getListViewWrapper(), getListViewWrapper().getFirstVisiblePosition());

            if (view != null)
            {
                view.Measure(View.MeasureSpec.MakeMeasureSpec(0, MeasureSpecMode.Unspecified), View.MeasureSpec.MakeMeasureSpec(0, MeasureSpecMode.Unspecified));
                int scrollDistance = view.MeasuredHeight;

                getListViewWrapper().smoothScrollBy(scrollDistance, (int)mDismissAnimationTime);
                mHandler.PostDelayed(new RestoreScrollRunnable(scrollDistance, position, this), mDismissAnimationTime);
            }
        }
        /**
         * Flings the {@link android.view.View} corresponding to given position out of sight.
         * Calling this method has the same effect as manually swiping an item off the screen.
         *
         * @param position the position of the item in the {@link android.widget.ListAdapter}. Must be visible.
         */
        public virtual void fling(int position)
        {
            int firstVisiblePosition = mListViewWrapper.getFirstVisiblePosition();
            int lastVisiblePosition  = mListViewWrapper.getLastVisiblePosition();

            if (position < firstVisiblePosition || position > lastVisiblePosition)
            {
                throw new Java.Lang.IllegalArgumentException("View for position " + position + " not visible!");
            }

            View downView = AdapterViewUtil.getViewForPosition(mListViewWrapper, position);

            if (downView == null)
            {
                throw new Java.Lang.IllegalStateException("No view found for position " + position);
            }
            flingView(downView, position, true);

            mActiveSwipeCount++;
            mVirtualListCount--;
        }