package com.marshalchen.common.uimodule.cooldraganddrop; import android.widget.ScrollView; public class SimpleScrollingStrategy implements ScrollingStrategy { ScrollView mScrollViewContainer; public SimpleScrollingStrategy(ScrollView scrollViewContainer) { mScrollViewContainer = scrollViewContainer; } @Override public boolean performScrolling(final int x, final int y, final CoolDragAndDropGridView view) { if (mScrollViewContainer != null) { int scrollY = mScrollViewContainer.getScrollY(); int delta = scrollY - view.getTop(); int maxDelta = Math.max(delta, 0); int dy = y - delta; int height = view.getHeight(); int containerHeight = mScrollViewContainer.getHeight(); int topThresshold = containerHeight / 10; int bottomThresshold = 9 * containerHeight / 10; if ((dy < topThresshold) && (maxDelta > 0)) { mScrollViewContainer.scrollBy(0, -topThresshold / 8); return true; } else if ((dy > bottomThresshold) && ((delta + containerHeight) < height)) { mScrollViewContainer.scrollBy(0, topThresshold / 8); return true; } } return false; } }