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