7

Sử dụng nàyGestureDetector.SimpleOnGestureListener. Làm cách nào để phát hiện sự kiện ACTION_UP?

mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { 

     @Override 
     public boolean onSingleTapUp(MotionEvent e) { 
      return true; 
     } 

Chỉ phát hiện cho tap sự kiện duy nhất ví dụ tap nhanh chóng và phát hành. Nếu tôi giữ và sau đó nhả, onSingleTapUp không được gọi.

Tôi đang tìm kiếm sự kiện chuyển động là ACTION_UP sau khi giữ.

Tôi đã xem onShowPress được gọi khi người dùng thực hiện hành động xuống nhưng sau đó tôi không biết cách phát hiện ACTION_UP khi đang ở onShowPress.

Lưu ý đây là số recycler view để nhấp vào các mục. Tại thời điểm này, tôi có thể chạm vào một mục mà nó hoạt động nhưng nếu tôi giữ nó xuống và sau đó phát hành, nó không được gọi.

+0

Bạn đã khắc phục được sự cố chưa? – Eselfar

+1

@Eselfar Xin chào, tôi đã không giải quyết vấn đề cụ thể này nhưng đã sử dụng một giải pháp hoàn toàn khác để giải quyết vấn đề của tôi, đó là đặt OnClickListener trên chính itemView. –

Trả lời

1

Bạn có thể thử như sau trong phương pháp onSingleTapUp của bạn:

@Override 
public boolean onSingleTapUp(MotionEvent e) { 
    if(e.getAction() == MotionEvent.ACTION_UP){ 

    // Do what you want 
    return true; 
    } 
    return false; 
} 
+0

Xin chào, xin lỗi vì trả lời muộn. Tôi đã thử mã nhưng nó không hoạt động. Tôi vẫn có thể chỉ nhấn một mục. Tôi sẽ sớm đăng một số mã –

0

Bạn có thể phân lớp quan điểm của bạn và ghi đè onTouchEvent. Điều đó sẽ cho phép bạn quan sát các hành động khác nhau trước khi bộ dò cử chỉ xử lý chúng.

@Override 
public boolean onTouchEvent(MotionEvent e) { 

    int action = e.getActionMasked(); 
    if (action == MotionEvent.ACTION_UP) { 
     // do something here 
    } 

    return mGestureDetector.onTouchEvent(e); 
} 
Các vấn đề liên quan