Tôi đang sử dụng mã sau để xử lý các nhấp chuột vào hàng. ( nguồn )
static class RecyclerTouchListener implements RecyclerView.OnItemTouchListener {
private GestureDetector gestureDetector;
private ClickListener clickListener;
public RecyclerTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) {
this.clickListener = clickListener;
gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
@Override
public void onLongPress(MotionEvent e) {
View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
if (child != null && clickListener != null) {
clickListener.onLongClick(child, recyclerView.getChildPosition(child));
}
}
});
}
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
View child = rv.findChildViewUnder(e.getX(), e.getY());
if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) {
clickListener.onClick(child, rv.getChildPosition(child));
}
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
}
Tuy nhiên, điều này hoạt động, nếu tôi muốn nói một nút xóa trên mỗi hàng. Tôi không chắc chắn về cách thực hiện điều đó với điều này.
Tôi đã đính kèm trình nghe OnClick để xóa nút hoạt động (xóa hàng) nhưng nó cũng kích hoạt onclick trên toàn bộ hàng.
Ai có thể giúp tôi làm thế nào để tránh nhấp toàn bộ hàng nếu một nút được nhấp vào.
Cảm ơn.