gridview 第一个加载失败不显示

gridview 第一个加载失败不显示

今天项目开发过程中用到了gridview,多行多列的展示,结果发现,第一个item不显示内容和照片,思前想后打个断点,跟踪到position==0时内容和照片设置的方法都走了,怎么还是不显示了,后来度娘了一下,发现是复用出得问题。究其原因:在position=0的内容和照片还没有加载完毕的时候后面的就复用了,所以导致第一item没有加载出来,初步判断listview也存在同样的问题。

解决方案:

1.在Adapter中创建内部类用boolean变量

1
2
3
4
5
6
7
8
9
10
11
12
class ModeDto {
private boolean hasFirstLoaded = false;
public boolean isHasFirstLoaded() {
return hasFirstLoaded;
}
public void setHasFirstLoaded(boolean hasFirstLoaded) {
this.hasFirstLoaded = hasFirstLoaded;
}
}

2.在初始化Adapter的时候初始化该类,

定义全局

1
ModeDto modeDto;

初始化中进行初始化(一般可以写在initview()方法中)

1
modeDto=new ModeDto();

记住千万不要放在getView里

3.在getView的时候赋值并判断做出操作

1
2
3
4
5
6
7
if (position == 0 && modeDto.isHasFirstLoaded()) {
return convertView;
}
if (position == 0) {
modeDto.setHasFirstLoaded(true);
}

这样就解决了这个问题,遇见了这个问题的赶紧动手试一试哦

坚持原创技术分享,您的支持将鼓励我继续创作!
Fork me on GitHub