如何创建克隆重复视图?

时间:2015-04-20 09:30:31

标签: android view android-view

在我的Android应用程序中,我想创建已创建的ImageButton的重复Imagebutton

我想以编程方式创建新的Imagebutton,它具有XML文件中已创建按钮的相同widht,height,background,image src,margin等。简而言之,我想创建重复的ImageButton

我试过这个

ImageButton mImageButton = (ImageButton) findViewById(R.id.ib);
Imagebutton duplicate = mImageButton;

但它只涉及mImageButton。因此,duplicate中的更改也会导致mImageButton中的更改。

请帮帮我。谢谢......

2 个答案:

答案 0 :(得分:9)

您无法克隆视图,执行此操作的方法是每次都创建视图。

您可以始终从XML中多次展开视图,或者创建一个以编程方式创建视图的函数。

通货膨胀:

private void addImageButton(ViewGroup viewGroup) {    
    View v = LayoutInflater.from(this).inflate(R.layout.ib, null);
    viewGroup.addView(v);
}

编程方式:

private void addImageButton(ViewGroup viewGroup) {    
    ImageButton imageButton = new ImageButton(context);
    viewGroup.addView(imageButton);
}

答案 1 :(得分:-1)

还要确保为每个新的克隆视图设置唯一ID。 否则你可能会收到此错误:

  

java.lang.IllegalStateException:指定的子节点已经有了   父节点。

您必须先在孩子的父母身上致电removeView()

view.setId(int id);