2014-06-10 2 views
6

Im view.startDrag()을 사용하여 끌기 작업을 시작합니다. 드래그하는 동안 이벤트는 OnDragListener 번으로 수신됩니다. 또한 View B의 마지막 이미지를 표시하려면 DragShadowBuilder을 (를) 사용하면서 드래그하십시오.드래그하는 동안 안드로이드에서 View.OnDragListener를 취소하는 방법?

일부 외부 이벤트 또는 작업에서 드래그를 중지하거나 취소하거나 중단하는 방법이 있습니까? 예를 들어, 두보기, View AView B, View BView 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; 
    } 
} 

답변

0

. ACTION_UP의 모션 이벤트를 보내려고했지만 아무것도하지 않았습니다. 사용자의 손가락을 누르고있는 동안 이벤트 계층을 방해하지 않습니다. Google 검색에 도움이되는 것이 없습니다.

방금 ​​전역을 설정하고 끌기가 끝날 때까지 기다렸다가 계속 진행했습니다.

관련 문제