smoothScrollBy()の特定の位置にスクロールするために使用していListViewます。ユーザーが指でスクロールしたときに発生するListView現在のイベントと統合するために、スクロールが完了したときに通知を受け取りたいと思います。onScrollStateChanged()
現在Timer、スムーズスクロールの継続時間の100ミリ秒後に実行されるを使用していますが、それは私が望むほどイベント駆動型ではありません。
smoothScrollBy()の特定の位置にスクロールするために使用していListViewます。ユーザーが指でスクロールしたときに発生するListView現在のイベントと統合するために、スクロールが完了したときに通知を受け取りたいと思います。onScrollStateChanged()
現在Timer、スムーズスクロールの継続時間の100ミリ秒後に実行されるを使用していますが、それは私が望むほどイベント駆動型ではありません。
リストビューに OnScrollListener を実装している場合は、ScrollState がいつ変化するかを監視できます。SmoothScrollBy() を呼び出すときに true に設定されたグローバル ブール値 (isScrolling) を使用し、OnScrollListener が SCROLL_STATE_IDLE の ScrollState を登録したら false に設定します。
sidebar1.smoothScrollToPositionFromTop(currentPosition, 0, 500);
isScrolling = true;
sidebar1.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
isScrolling = false;
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
});