私はリサイクラービューでOnItemTouchListenerと各行を持ち、このリサイクラーにはonclickイベントのボタンがあります。リサイクラービューのハンドルボタン
ボタンイベントの後の作業は必要ですが、OnItemTouchListenerが機能します。
助けてください。私のコード。 viewholderで
public class RecyclerViewTouchListener implements RecyclerView.OnItemTouchListener {
private GestureDetector gestureDetector;
private ClickListener clickListener;
public RecyclerViewTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) {
this.clickListener=clickListener;
gestureDetector=new GestureDetector(new GestureDetector.SimpleOnGestureListener(){
@SuppressWarnings("deprecation")
@Override
public boolean onSingleTapUp(MotionEvent e) {
View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
if (child!=null && clickListener!=null){
clickListener.OnClick(child,recyclerView.getChildPosition(child));
}
return true;
}
});
}
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
View child = rv.findChildViewUnder(e.getX(), e.getY());
if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) {
//noinspection deprecation
clickListener.OnClick(child, rv.getChildPosition(child));
}
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
public static interface ClickListener {
void OnClick(View view,int position);
}
}
このコード
deleteButton.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
callbacks.removePosition(getAdapterPosition());
}
});
をしかし、OnItemTouchListenerは動作します。 –
あなたの問題は何ですか?私はそれが何であるか把握できません。 – tim687
@TimCastelijns実感してください。クリックメソッドの実行後、クリックボタンの後にしたい。 onclickメソッドボタンは動作せず、onItemTouchListenerだけが実行されます。 – MansoorJafari