2016-04-23 17 views
5

Tôi có một RecyclerView trong ứng dụng của mình và nó hiển thị dữ liệu. Tôi muốn vô hiệu hóa các sự kiện liên lạc của người dùng của RecyclerView. Tôi đã thử các mã dưới đây nhưng nó không hoạt động.tắt các sự kiện chạm của RecyclerView (để ngăn người dùng chạm)?

recyclerView.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     return false; 
    } 
}); 

Hãy giúp tôi.

+0

Bạn có thể kiểm tra điều này cho sự kiện liên lạc trên mỗi mục. http://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnItemTouchListener.html – androidnoobdev

+0

Tôi sẽ mở rộng RecyclerView và Ghi đè onTouch và onInterceptTouchEvent để luôn trả về false. –

Trả lời

4

Như tôi đã có một trường hợp sử dụng tương tự cách đây vài ngày và stumbled khi câu hỏi này chỉ là bây giờ:
bạn có thể thêm hoặc

để RecyclerView của bạn .

Ví dụ sử dụng RecyclerView.SimpleOnItemTouchListener:

recyclerView.addOnItemTouchListener(new RecyclerView.SimpleOnItemTouchListener() { 
    @Override 
    public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { 
     // true: consume touch event 
     // false: dispatch touch event 
     return true; 
    } 
}); 

tôi tiêu thụ các sự kiện liên lạc trong khi SwipeRefreshLayout tôi đang làm công việc nền bằng cách truy vấn swipeLayout.isRefreshing().

0

Bạn có thể ghi đè lên LinearLayoutManager canScrollHorizontally phương pháp

getRecyclerView().setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false) { 
    @Override 
    public boolean canScrollHorizontally() { 
     return false; 
    } 
}); 
Các vấn đề liên quan