アプリの画面の横に ViewFlipper があり、さまざまなビューが含まれています。ユーザーが左にスワイプしてこれを閉じられるようにしたいと考えています。だからいつものことをした...
private class SwipeDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
//Dismiss view
}
@Override
public boolean onDown(MotionEvent e) {
return true;
}
}
...次に、ViewFlipper の onTouchListener を設定して、SwipeDetector で onTouchEvent を呼び出します。それはすべてうまくいきましたが、ViewFlipperに入るすべてのタッチイベントを消費していたため、ViewFlipper自体が何もクリックできなかったことに気付きました。onDown をオーバーライドしないか、false を返すようにすると、TouchListener は残りのイベントを無視し、フリングを取得しません。ユーザーがViewFlipperに触れた後のすべてのACTION_MOVEイベントを処理できても、それさえできない場合は、ある種のカスタムスワイプ検出をハックして喜んでいます。onDown を消費せずに MotionEvent を聞き続ける方法はありますか?