Здесь есть несколько отличных ответов, но мой код может обнаружить, когда прокрутка останавливается без необходимости расширять класс ScrollView.каждый экземпляр представления может вызывать getViewTreeObserver ().удерживая этот экземпляр ViewTreeObserver, вы можете добавить OnScrollChangedListener с помощью функции addOnScrollChangedListener ().
объявите следующее:
private ScrollView scrollListener;
private volatile long milesec;
private Handler scrollStopDetector;
private Thread scrollcalled = new Thread() {
@Override
public void run() {
if (System.currentTimeMillis() - milesec > 200) {
//scroll stopped - put your code here
}
}
};
и в вашем onCreate (или другом месте) добавьте:
scrollListener = (ScrollView) findViewById(R.id.scroll);
scrollListener.getViewTreeObserver().addOnScrollChangedListener(new OnScrollChangedListener() {
@Override
public void onScrollChanged() {
milesec = System.currentTimeMillis();
scrollStopDetector.postDelayed(scrollcalled, 200);
}
});
вам может потребоваться больше или меньше времени между этими проверками, но при прокрутке этот список вызывается очень быстро, поэтому он будет работать очень быстро.