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

How to add imageviews to constraint layout

我有一个约束布局。我以编程方式将图像视图添加到具有随机图片的约束布局。当用户单击 "New Game" 按钮时,我想删除所有以编程方式创建的图像视图并随机重新创建它们。

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

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

您可以通过以下几种不同的方式执行此操作。

从您的 ConstraintLayout 中删除所有视图

所有 ViewGroup 子类都支持 removeAllViews() 方法。这将删除当前在 ViewGroup 中的每个子项,因此只有当您想要删除 everything 时才合适。如果你想保留一些视图,这将不起作用。

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

也许你在某处保留了一个 List<ImageView> images 变量,当你将图像添加到你的 ConstraintLayout 时,你也调用了 images.add(myImageView)。然后,这将为您提供一组视图,您可以迭代并调用 removeView() on:

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);