Sürükleme işlemini başlatmak için view.startDrag()
kullanıyorum. Sürüklenirken, olaylar OnDragListener
'da alınır. Ayrıca sürüklerken View B
son görüntüsünü göstermek için DragShadowBuilder
kullanıyorum.İşletim sırasında sürükleme sırasında Android'de View.OnDragListener nasıl iptal edilir?
Bazı harici olaylardan veya işlemlerden dolayı sürüklemenin veya iptal edilmenin veya iptal etmenin bir yolu var mı? örneğin, View A
ve View B
olmak üzere 2 görünüm vardır, View A
üzerinden View B
sürüklemiyorum. Sürüklerken, bazı harici olaylar veya işlemler nedeniyle, sürükleme işlemlerini iptal etmek veya OnDragListener
'u iptal etmek (parmağımı view B
'dan kaldırmadan) iptal etmek istiyorum. DragShadowBuilder
için
Kod Parçacığı:
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);
Kod Parçacığı OnDragListener
için: Bunun için herhangi bir hile bulamadık
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;
}
}