link:给推荐几个对程序员来说神器般存在的软件
为了验证下面的博客的写的内容
http://www.cnblogs.com/xiaowenji/articles/1900579.html
我就自己再次做了次测试
下面给测试结果
手机页面可以显示的item个数是0-12 即13个item
这个是getview()的代码,,,,简单的很
int count = -1;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
System.out.println("position " + position + " convertView " + convertView);
if (convertView == null) {
convertView = View.inflate(mContext, R.layout.csy_listitem_citys, null);
count++;
}
System.out.println("执行次数" + count + " 在布局位置" + position);
//返回
return convertView;
}
所以说他的博客里面的有句话我觉得是不是有点问题
就是第二第三局
从测试结果上来看
刚刚开始是加载了可视范围内的0-12的item 加载xml文件加载了13次 (图上的次数是从0开始计的 是12)而且此时的convertview是null没错
然后
向上滑动
加载第13(从1开始计数则是第14个item)。加载xml文件一共加载了14次 (图上的次数是从0开始计的 是13) 但是此时的测试结果是convertview还是null
再继续滑动的时候
到加载第14个的时候(从1开始计数则是第15个item)。加载xml文件一共加载了14次 (图上的次数是从0开始计的 是13)
此时 xml文件没有继续被加载,得到了复用。但是此时的convertview就不是null了有值了。
再此之后
可以看到执行次数始终是13(从1开始计数则是14)
convertview就一直不是null了。。。。。有值了。
- ListView先请求一个type1视图(getView)然后请求其他可见的项目。convertView在getView中是空(null)的。
- ListView加载的时候先请求可见范围内的项目 此时convertView在getView中是空(null)的
- 滑动的时候(只滑动到可且仅显示一个的时候)还得再请求一个,所以+ 1 。这个时候convertView在getView中还是空(null)的。
- 然后加载xml文件的执行次数也是可见范围内项目数+1;
- 之后,就是一直复用最后一次加载的convertView
可以看到如下:
加载的次数没有增加。一直是第13次(从1开始计数则是14)的加载结果的convetview.
以上呢
是我自己的观点
全都是自己测试的哟。
有什么不对的。还请多多指教。我还是个新手。心血来潮才来这个搞这个测试滴。
以教。。。。。。