複数のビューで異なるジェスチャーを検出する必要があります。私のビューは、タップ、ダブルタップ、およびドラッグ イベントを受け取ることができる必要があります。Gesture Detector を試しましたが、私の実装ではグローバル ジェスチャ イベントしか表示されず、これらのイベントを特定のビューに関連付けることができません。
私の activity.onCreate で:
dthandler = new DoubleTapHandler();
mDetector = new GestureDetector(this,dthandler);
gestureListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
Log.d("myLog","touch");
mDetector.onTouchEvent(event);
return false;
}
};
私のアクティビティでは、dispatchTouch 関数をオーバーライドします。
@Override
public boolean dispatchTouchEvent(MotionEvent me){
this.mDetector.onTouchEvent(me);
return super.dispatchTouchEvent(me);
}
これは、タッチイベントをビューに接続しようとする方法です:
prod.setOnTouchListener(this.gestureListener);
私の DoubleTapHandler:
public class DoubleTapHandler implements OnDoubleTapListener, OnGestureListener {
private ProductView relatedView;
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
Log.d("myLog", "onDoubleTapEvent");
Log.d("myLog",""+e.getSource());
return false;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
Log.d("myLog", "onDoubleTap"+relatedView);
return false;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
Log.d("myLog", "singletap");
return false;
}
}
誰にもアドバイスはありますか?ありがとう!