Tôi đã thử triển khai mã từ câu hỏi này: Detecting a long press with Android, nhưng nó luôn phát hiện một báo chí dài, nếu ngay cả tôi chỉ cần nhấn vào nó. Mã của tôi là như sau (tôi mở rộng ImageView
, bởi vì mã hơn là ở trong đó, không có liên quan cho câu hỏi này):Báo chí dài trong GestureDetector cũng kích hoạt trên tap
public class EbsImageView extends ImageView {
final GestureDetector gestureDetector = new GestureDetector(this.getContext(), new GestureDetector.SimpleOnGestureListener() {
public void onLongPress(MotionEvent e) {
Log.e("", "Longpress detected");
}
public boolean onSingleTapUP(MotionEvent e) {
Log.e("", "Press detected");
// don't consume, we want the long press to fire if it was a
// long press
return false;
}
});
@Override
public boolean onTouchEvent(MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
}
return false from onTouchEvent() –
@ Eu.Dr. không có sự khác biệt, tôi cũng đã thử mã từ đây: http://developer.android.com/training/gestures/detector.html nhưng cùng một vấn đề. –
Chú thích @Override của bạn ở đâu trênLongPress và onSingleTapUp? Nó chỉ là một bản sao/dán không? – Opiatefuchs