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--; }