在拖放布局中定位

时间:2014-01-01 09:38:11

标签: java drag-and-drop awt

我有一些关于拖放的问题。我已经创建了拖放代码,它工作得很好。但是问题就在这里,正如你在下面的图片中看到的那样,每个罐子里只能装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();
}
  }
  }  

enter image description here

1 个答案:

答案 0 :(得分:0)

case DragEvent.ACTION_DRAG_ENDED块内你应该检查jar中是否有空间然后返回false以便放置操作失败。