Ich verwende folgenden Code für die Behandlung von Zeilen Klicks. (source)Handle-Taste Klicken Sie in eine Zeile in RecyclerView
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) {
}
}
Dies funktioniert jedoch, wenn ich auf jeder Zeile sagen, eine Löschtaste haben will. Ich bin mir nicht sicher, wie ich das umsetzen soll.
Ich angehängt OnClick Listener zum Löschen der Taste, die funktioniert (löscht die Zeile), aber es feuert auch den Onclick auf die volle Zeile.
Kann mir jemand helfen, wie man das Klicken der ganzen Reihe vermeidet, wenn eine einzelne Taste geklickt wird.
Danke.
Danke, ich habe dieses Muster nur für meine Implementierung verwendet. Das Problem war jedoch etwas anderes. Sehen Sie hier http://StackOverflow.com/Questions/30287411/issue-with-cardview-and-onclicklistener-in-recyclerview –
Wie würden Sie erfahren, welche Zeile der Schaltfläche angeklickt wurde? –
'getAdapterPosition()' ruft die Zeile ab. –