GestureDetector を使用して同様の問題を解決しました
MotionEvent を GestureDetector に送信する
tapGestureDetector = new GestureDetector(this, new TapGestureListener());
viewPager.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
tapGestureDetector.onTouchEvent(event);
return false;
}
});
互換性ライブラリを使用している場合は、最初の行を次のように変更できます。
tapGestureDetector = new GestureDetectorCompat(this, new TapGestureListener());
GestureListener でイベントを処理できます。
class TapGestureListener extends GestureDetector.SimpleOnGestureListener{
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
// Your Code here
}
}