如何将图像视图添加到约束布局

时间:2018-12-03 16:10:52

标签: android layout imageview android-constraintlayout

我有一个约束布局。我以编程方式向约束布局中添加了具有随机图片的图像视图。当用户单击“新建游戏”按钮时,我想删除以编程方式创建的所有图像视图,并随机地重新创建它们。

当我在下面编写代码时,正在创建我的图像,但也保留了旧图像。如何在没有旧的imageviews的情况下重新加载约束布局?

CLCarrier.addView(Cards [i],-1);

1 个答案:

答案 0 :(得分:1)

您可以通过以下几种不同的方式来做到这一点。

从ConstraintLayout中删除所有视图

所有ViewGroup子类都支持removeAllViews()方法。这将删除当前在ViewGroup中的所有子对象,因此仅当您想摆脱一切时才适用。如果您想保留一些视图,将无法使用。

在添加ImageView时跟踪它们,然后将它们一一删除

也许您在某个位置保留了一个List<ImageView> images变量,并且在将图像添加到ConstraintLayout时也调用了images.add(myImageView)。然后,您将获得一系列视图,可以循环访问并调用removeView()

for (ImageView image : images) {
    constraintLayout.removeView(image);
}

重新填充原始ConstraintLayout

如果您不想使用removeAllViews(),并且也不想跟踪所有视图以便以后再删除它们,可以通过重新填充原始布局来重新初始化ConstraintLayout。

LayoutInflater inflater = LayoutInflater.from(this); // requires a `Context` object
constraintLayout = inflater.inflate(R.layout.constraint_layout, parent, false);
相关问题