Im view.startDrag()
을 사용하여 끌기 작업을 시작합니다. 드래그하는 동안 이벤트는 OnDragListener
번으로 수신됩니다. 또한 View B
의 마지막 이미지를 표시하려면 DragShadowBuilder
을 (를) 사용하면서 드래그하십시오.드래그하는 동안 안드로이드에서 View.OnDragListener를 취소하는 방법?
일부 외부 이벤트 또는 작업에서 드래그를 중지하거나 취소하거나 중단하는 방법이 있습니까? 예를 들어, 두보기, View A
및 View B
, View B
을 View A
이상으로 끌고 있습니다. 드래그하는 동안, 일부 외부 이벤트 나 작업으로 인해 드래그 작업을 취소하거나 view B
에서 손가락을 제거하지 않고 OnDragListener
을 취소하고 싶습니다. DragShadowBuilder
에 대한
코드 조각 :
DragShadowBuilder shadowBuilder = new DragShadowBuilder(view) {
@Override
public void onDrawShadow(Canvas canvas) {
canvas.drawBitmap(b, 0, 0, new Paint());
super.onDrawShadow(canvas);
}
};
boolean dragSuccess = false;
dragSuccess = view.startDrag(null, shadowBuilder, view, 0);
코드 조각 OnDragListener
에 : 나는 이것에 대한 어떤 트릭을 찾을 수 없습니다
private final class ViewDragListener implements OnDragListener {
@Override
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
log("ACTION_DRAG_STARTED");
break;
case DragEvent.ACTION_DRAG_ENTERED:
log("ACTION_DRAG_ENTERED");
break;
case DragEvent.ACTION_DRAG_EXITED:
log("ACTION_DRAG_EXITED");
case DragEvent.ACTION_DROP:
log("ACTION_DROP");
mX = (int) event.getX();
mY = (int)event.getY();
break;
case DragEvent.ACTION_DRAG_ENDED:
log("ACTION_DRAG_ENDED");
//Doing some cleanup operations.
break;
case DragEvent.ACTION_DRAG_LOCATION:
log("ACTION_DRAG_LOCATION");
break;
default:
break;
}
return true;
}
}