我试图在用户长按“Recyclerview”项目并向下或向上滑动后执行拖动操作。长按,我已经开始动作模式,所以用户在长按后向下/向上滑动,然后只需要开始拖动。我尝试在Recyclerview上实现onTouch侦听器,但它没有收到ACTION_DOWN事件。当手指被释放时,它仅接收ACTION_MOVE和ACTION_UP。在手势监听器内部,我开始拖动。但是在这种情况下如何捕获ACTION_DOWN或向下/向上滑动?
我不想移动ItemTouchHelper或Drag Sort list view等项目。
recyclerAdapter.setOnItemLongClickListener(new Recycler.OnItemLongClickListener() {
@Override
public void onItemLongClick(View view, int position) {
getActivity().startActionMode(this);
mStartDrag = true;
}});
recyclerViewList.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Logger.log("TAG", "On item touch"+ motionEvent.getActionMasked()); // Returns 2 (ACTION_MOVE)
if (mStartDrag) {
if (gestureDetector.onTouchEvent(motionEvent)) {
return false;
}
}
return false;
}
});
答案 0 :(得分:0)
viewHolder.drag.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
mStartDragListener.onStartDrag(viewHolder);
return false;
}
});