どうすればHorizontalScrollView内のフリングイベントの終了を検出できますか?
GestureDetectorを使用すると、onFlingがいつ開始されたかを判断できますが、いつ完了したかを判断する方法がわかりません。私が見逃しているコールバック関数または同様のトリックはありますか?
どうすればHorizontalScrollView内のフリングイベントの終了を検出できますか?
GestureDetectorを使用すると、onFlingがいつ開始されたかを判断できますが、いつ完了したかを判断する方法がわかりません。私が見逃しているコールバック関数または同様のトリックはありますか?
この回答は遅れていますが、同様の要件でおそらく役立つでしょう
私のアプローチは、ビューのscrollToをオーバーライドすることです。ハンドラーを使用して遅延メッセージを再スケジュールします。その結果、スクロール呼び出しが発生している限り、メッセージは配信されません。ただし、スクロールコールが発生しない場合は、メッセージが配信され、「フリング」の終了を通知するために使用できます。
アイデアはわかりましたか?
これが水平スクロールビューのスクロールエンドを表示および非表示にするために機能することを願っています
hsv.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
View view = (View) hsv.getChildAt(hsv.getChildCount() - 1);
int diff = (view.getRight() - (hsv.getWidth() + hsv.getScrollX()));
if (diff <= 0) {
next.setVisibility(View.INVISIBLE);
} else {
next.setVisibility(View.VISIBLE);
}
}
});