【发布时间】:2014-03-16 18:23:51
【问题描述】:
我正在使用带有三个 TextView 拖放的 LinearLayout 将其移动到另一个容器。 我的代码:
OnDragListener dragi = new OnDragListener() {
@Override
public boolean onDrag(View arg0, DragEvent arg1) {
// TODO Auto-generated method stub
int action = arg1.getAction();
switch (action) {
case DragEvent.ACTION_DRAG_STARTED:
break;
case DragEvent.ACTION_DRAG_ENTERED:
break;
case DragEvent.ACTION_DRAG_EXITED:
break;
case DragEvent.ACTION_DROP:
View view = (View) arg1.getLocalState();
ViewGroup owner = (ViewGroup) view.getParent();
owner.removeView(view);
//
LinearLayout container = (LinearLayout) arg0;
container.addView(view);
view.setVisibility(View.VISIBLE);
}
break;
case DragEvent.ACTION_DRAG_ENDED:
break;
default:
break;
}
return true;
}
};
我的问题是我不想从基础容器中删除视图,它应该保留在那里,只需将副本添加到第二个容器。
谢谢
【问题讨论】:
-
没那么容易 -->java.lang.IllegalStateException: 指定的孩子已经有一个父母。您必须先在孩子的父母上调用 removeView()。
-
我认为问题在于视图只能在父级上。我也不知道“克隆”视图的方法
标签: android drag-and-drop