如何从控件中删除所有子视图?例如,我有一个GridView,并且我动态地将许多其他LinearLayout充气到它中;后来在我的应用程序中,我正在寻找新的GridView并清除所有的子视图。我将如何做到这一点? TIA。从视图中删除所有子视图
74
A
回答
143
viewGroup.removeAllViews()
适用于任何viewGroup。在你的情况下,它是GridView。
http://developer.android.com/reference/android/view/ViewGroup.html#removeAllViews()
11
您可以使用此功能只删除某些类型的视图在的ViewGroup:
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;
}
}
}
+0
由于OP没有询问如何删除不同类型的子视图,因此进行了倒票。 OP想要删除所有的子视图。 – protectedmember
0
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);
}
}
}
0
试试这个
RelativeLayout relativeLayout = findViewById(R.id.realtive_layout_root);
relativeLayout.removeAllViews();
此代码工作我。
相关问题
- 1. 从UIScrollView中删除所有子视图?
- 2. 如何删除子视图(或视图的所有子视图)
- 3. Monotouch:从视图中删除所有子视图
- 4. 删除dealloc中的所有子视图?
- 5. 认证后没有从所有的视图中删除视图
- 6. iOS - 删除所有子视图后重新添加子视图
- 7. 从视图中删除所有UIButtons?
- 8. Backbone.js - 删除所有子视图
- 9. UIViewController中删除子视图
- 10. 从UIBarButtonItem中删除徽章子视图
- 11. 从MapPin中删除子视图
- 12. 如何从navigationController中删除子视图?
- 13. 如何从scrollview中删除子视图?
- 14. Ishidden vs从子视图中删除
- 15. 从子视图中删除对象
- 16. 从外部删除其他子视图时的子视图
- 17. 从UITableViewCell的内容视图中删除子视图
- 18. 从UIScrollView中删除子视图并更新视图
- 19. 从其SuperView中删除视图,在iPhone上通知子视图
- 20. 无法从视图中删除子视图?
- 21. 如何从视图中删除子视图?
- 22. 如何从表视图中添加/删除子视图
- 23. xcode从视图中删除一些子视图
- 24. 从不存在的视图中删除子视图
- 25. NSView从超级视图中删除一些子视图
- 26. 从TabBarController中删除视图
- 27. 从视图中删除UINavigationBar
- 28. 从视图中删除UITextField
- 29. 从ScrollView中删除视图
- 30. 从视图中删除UIView
感谢您的帮助! –
事实上,在GridView上调用removeAllViews()时会引发异常。从文档:“此方法不受支持,并在调用时引发UnsupportedOperationException。” – Moritz
该注释适用于派生ViewGroup的抽象基类。 ViewGroup本身及其所有派生类都支持removeAllViews。 –