Android删除子视图的顺序不对导致空指针异常
2022-04-18 本文已影响0人
杨南北
在线性布局中需要动态删除子视图时需要从尾部开始删除,否则会报子视图找不到的空指针异常。
×错误删除示范
{
int childCount=ll_layout_content.getChildCount();
for(int i=0;i<childCount;i++) {
ll_layout_content.removeViewAt(i);
}
}
√正确删除示范
{
for(int i=childCount-1;i>=0;i--) {
ll_layout_content.removeViewAt(i);
}
}
如果父视图按序号从小到大删除,则每删除一个,后面的视图的序号自动递补前一个,而for循环中原序号的视图则无法找到导致空指针异常,所以必须采用尾部序号从大到小的顺序删除