private int getItemHeight(int position) {
        View v = getChildAt(position - getFirstVisiblePosition());

        if (v != null) {
            // item is onscreen, just get the height of the View
            return v.getHeight();
        } else {
            // item is offscreen. get child height and calculate
            // item height based on current shuffle state
            return calcItemHeight(position, getChildHeight(position));
        }
    }
As opposed to {@link ListView#getAdapter()}, which returns
a heavily wrapped ListAdapter (DragSortListView wraps the
input ListAdapter {\emph and} ListView wraps the wrapped one).

@return The ListAdapter set as the argument of {@link setAdapter()}
third_party/DragSortListView/src/com/mobeta/android/dslv/DragSortListView.java