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



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

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

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

这里有几种不同的方法。

从ConstraintLayout中删除所有视图

所有ViewGroup子类都支持removeAllViews()方法。这将删除ViewGroup中当前的每个子项,因此只有当您想删除所有时才合适。如果你想保留一些观点,这是行不通的。

在添加ImageViews时跟踪它们,然后逐个删除它们

也许您在某个地方保留了一个List<ImageView> images变量,当您将图像添加到ConstraintLayout时,您也会调用images.add(myImageView)。然后,这将为您提供一个视图集合,您可以对其进行迭代并在上调用removeView()

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

重新充气原始约束布局

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

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

相关内容

  • 没有找到相关文章

最新更新