我有一些关于拖放的问题。我已经创建了拖放代码,它工作得很好。但是问题就在这里,正如你在下面的图片中看到的那样,每个罐子里只能装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();
}
}
}
答案 0 :(得分:0)
在case DragEvent.ACTION_DRAG_ENDED
块内你应该检查jar中是否有空间然后返回false
以便放置操作失败。