从视图中删除所有子视图

如何从小部件中删除所有子视图?例如,我有一个 GridView,我动态地将许多其他的 LinearLayouts 充气到它中; 在后面的应用程序中,我希望使用 GridView 重新开始,并清除它的所有子视图。我要怎么做?TIA.

71162 次浏览
viewGroup.removeAllViews()

适用于任何视图组。在您的情况下,它是 GridView。

Http://developer.android.com/reference/android/view/viewgroup.html#removeallviews

使用这个函数,您只能删除 查看组中的某些类型的视图:

private void clearImageView(ViewGroup v) {
boolean doBreak = false;
while (!doBreak) {
int childCount = v.getChildCount();
int i;
for(i=0; i<childCount; i++) {
View currentChild = v.getChildAt(i);
// Change ImageView with your desired type view
if (currentChild instanceof ImageView) {
v.removeView(currentChild);
break;
}
}


if (i == childCount) {
doBreak = true;
}
}
}

试试这个

void removeAllChildViews(ViewGroup viewGroup) {
for (int i = 0; i < viewGroup.getChildCount(); i++) {
View child = viewGroup.getChildAt(i);
if (child instanceof ViewGroup) {
if (child instanceof AdapterView) {
viewGroup.removeView(child);
return;
}
removeAllChildViews(((ViewGroup) child));
} else {
viewGroup.removeView(child);
}
}
}

试试这个

RelativeLayout  relativeLayout = findViewById(R.id.realtive_layout_root);
relativeLayout.removeAllViews();

这个代码对我很有用。