1

在我的 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;
    }             
}

如果目标线性布局不为空(有孩子),我如何将按钮保持在前一个线性布局?谢谢

4

0 回答 0