在我的 android 应用程序中,我有一个网格布局,其中有五个线性布局。四个线性布局每个包含一个按钮,另一个线性布局是空的。我想将一个按钮放到空的线性布局中,当线性布局不为空时,放置后它将采用其先前的线性布局位置。使用此代码
ViewGroup owner = (ViewGroup) view.getParent();
LinearLayout pastContainer = (LinearLayout) owner;
如果目标线性布局不为空(有孩子),我会得到我想要保留按钮的线性布局。我让目标线性布局的孩子使用此代码检查它是否为空
LinearLayout newcontainer = (LinearLayout) v;
int count = newcontainer.getChildCount();
我可以将一个按钮放到一个空的线性布局中,但是当我尝试将一个按钮放到一个带有子元素的线性布局中时,它会出错。这是我的代码
private class MyDragListener implements OnDragListener
{
@Override
public boolean onDrag(View v, DragEvent event)
{
int action = event.getAction();
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
// Do nothing
break;
case DragEvent.ACTION_DRAG_ENTERED:
break;
case DragEvent.ACTION_DRAG_EXITED:
break;
case DragEvent.ACTION_DROP:
View view = (View) event.getLocalState();
ViewGroup owner = (ViewGroup) view.getParent();
LinearLayout pastContainer = (LinearLayout) owner;
LinearLayout newcontainer = (LinearLayout) v;
int count = newcontainer.getChildCount();
if(count==0)
{
owner.removeView(view);
newcontainer.addView(view);
view.setVisibility(View.VISIBLE);
}
else
{
pastContainer.addView(view);
view.setVisibility(View.VISIBLE);
}
break;
case DragEvent.ACTION_DRAG_ENDED:
default:
break;
}
return true;
}
}
如果目标线性布局不为空(有孩子),我如何将按钮保持在前一个线性布局?谢谢