【发布时间】:2023-11-13 07:50:02
【问题描述】:
我在这里有一些关于拖放的问题。我已经创建了拖放代码,它工作正常。但问题来了,正如您在下面的图片中看到的那样,每个罐子只能装 4 个糖果,但是当我将糖果从第二个罐子拖到第一个罐子时,它仍然可以放入其中。我怎样才能让每个罐子只能用四个糖果固定?
这是我为拖放所做的编码。我应该在这段代码中的某处使用 if else 语句来解决我的问题吗?
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
View view = (View) event.getLocalState();
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
// Do nothing
break;
case DragEvent.ACTION_DRAG_ENTERED:
v.setBackgroundDrawable(normalShape);
break;
case DragEvent.ACTION_DRAG_EXITED:
v.setBackgroundDrawable(normalShape);
break;
case DragEvent.ACTION_DROP:
// Dropped, reassign View to ViewGroup
ViewGroup owner = (ViewGroup) view.getParent();
owner.removeView(view);
LinearLayout container = (LinearLayout) v;
container.addView(view);
view.setVisibility(View.VISIBLE);
break;
case DragEvent.ACTION_DRAG_ENDED:
//v.setBackgroundDrawable(normalShape);
if (dropEventNotHandled(event))
{
view.setVisibility(View.VISIBLE);
}
break;
default:
break;
}
return true;
}
private boolean dropEventNotHandled(DragEvent event) {
// TODO Auto-generated method stub
return !event.getResult();
}
}
}
【问题讨论】:
-
如需尽快获得更好的帮助,请发帖SSCCE。
标签: java drag-and-drop awt