Похоже, что это в DragEvent.ACTION_DROP
, где представление добавляется к новому родителю. Поэтому, когда это происходит, вы можете просто проверить, имеет ли представление, к которому вы добавляете его, уже определенное число дочерних элементов:
Измените это:
case DragEvent.ACTION_DROP:
...
View v = (View) event.getLocalState();
ViewGroup owner = (ViewGroup) v.getParent();
owner.removeView(v);//remove the dragged view
LinearLayout container = (LinearLayout) view;
container.addView(v);
v.setVisibility(View.VISIBLE);
на следующее:
case DragEvent.ACTION_DROP:
...
LinearLayout container = (LinearLayout) view;
if (container.getChildCount() < 1) { // only move the view if the container has no kids
View v = (View) event.getLocalState();
ViewGroup owner = (ViewGroup) v.getParent();
owner.removeView(v);
container.addView(v);
}
v.setVisibility(View.VISIBLE);