Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何删除动态膨胀的视图?_Android - Fatal编程技术网

Android 如何删除动态膨胀的视图?

Android 如何删除动态膨胀的视图?,android,Android,在我想开发的一个简单的纸牌游戏中,我有三个按钮:按钮1、按钮2和按钮3。button1在tablerow中创建两个ImageView并显示图像。单击按钮2和/或按钮3时,它会通过布局充气器在tablerow上动态添加imageview。游戏结束后,我希望用户点击按钮1,重新开始游戏。我可以这样做,但问题是,以前通过单击按钮2和按钮3显示的图像视图也会显示。我希望在单击按钮1时将其删除。如何在单击按钮1时删除它们? 请帮帮我 就像添加视图一样,您可以删除它们。只需在父容器上调用removeView

在我想开发的一个简单的纸牌游戏中,我有三个按钮:按钮1、按钮2和按钮3。button1在tablerow中创建两个ImageView并显示图像。单击按钮2和/或按钮3时,它会通过布局充气器在tablerow上动态添加imageview。游戏结束后,我希望用户点击按钮1,重新开始游戏。我可以这样做,但问题是,以前通过单击按钮2和按钮3显示的图像视图也会显示。我希望在单击按钮1时将其删除。如何在单击按钮1时删除它们?
请帮帮我

就像添加视图一样,您可以删除它们。只需在父容器上调用
removeViewAt(int-index)
removeView(View-View)
,即可删除所需的视图

或者,如果您预见要重用它们,您可以将它们的可见性设置为
GONE
。然后你可以把它们带回来,而不必再次充气

如果要让充气器自动将充气图像视图附着到父视图,则必须跟踪添加视图的位置。在充气之前,您可以在父视图上使用
getChildCount
,以查找要添加的下一个视图的索引。

您可以使用

大概是这样的:

tblRow.removeView(button2);

下面是我如何在5秒钟后添加然后删除视图(在另一个上下文中)

在onClickListener的上下文中也有相同的使用场景。 在此处查看更多信息

//添加视图

LayoutInflater inflater = (LayoutInflater)this.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
final View buttons = inflater.inflate(R.layout.activity, null );
addContentView(buttons, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
//删除视图

((ViewManager)buttons.getParent()).removeView(buttons);

我这样做了,但当我单击按钮1时,它没有添加imageview。我只想删除布局充气器显示的图像视图。而且我不想移除按钮!!我要删除ImageView。然后将对要删除的ImageView的引用传递给removeView(),而不是按钮。如果您编辑您的问题并发布一些您正在使用的代码,我们将更容易为您提供特定的解决方案。现在,根据您发布的内容,很难准确地说出您的程序中发生了什么。
((ViewManager)buttons.getParent()).removeView(buttons);