精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-03-28
aa87963014 写道 http://www.iteye.com/topic/860925
这个是我的见解。 感谢参与讨论,如果tag用起来有问题,而且数据量有限确实为一个不错的办法。 不过我对您这句有一些不同的看法,前提是如果tag有效的话: “大概思想是setTag();getTag();来保存已经加载过了的 ViewHolder 组件,现在我称ViewHolder 为ABCD 意为毫无特殊意义的类,顶多用到了单例的思想 ” 这样做主要是为了减少findViewById次数,因为这个函数操作起来是比较费时的,而且找到后仍然需要强制类型转换,相比ViewHolder的方式,牺牲一点空间只需要强制类型转换即可。 ———————————————————————————————————————— 结合tag的问题,还要减少findViewById的次数,还要控制内存不能存储过多的数据,设想是否可以这样:我们不使用XML文件来生成对象(convertView = mInflater.inflate(R.layout.list_item_icon_text,null);),而用自定义的类(继承自RelativeLayout或其他容器),然后在这个里面直接把子元素findViewById后放到成员变量再暴露出来,这样可以解决tag问题,也可以达到减少findViewById的次数,不知道大家如何看待,欢迎大家交流。 PS:如果我没记错的话,好像新浪微博也是这么做的 ![]() |
|
返回顶楼 | |
发表时间:2011-04-06
本帖的续:
[Android]ListView性能优化之视图缓存(续) http://www.iteye.com/topic/987388 欢迎大家交流。 |
|
返回顶楼 | |
发表时间:2011-06-09
caizi12 写道 over140 写道 caizi12 写道 这不是cnBlog 上面的帖子吗,下午刚看的。。。
是一个人吗?? 嗯,是同一个人,也发到这边来讨论一下 ![]() 我也是两边串啊,这些天发现javaEye上面的帖子不行了。很少有人发了。质量也不行。就跑到,CNBLOG上面看去了。 哈,现在都差不多,一份账号密码,上遍所有论坛。 先藏收起来。 |
|
返回顶楼 | |
发表时间:2011-12-26
有点恶心。
我在listview里面加了spinner控件。 结果我更改带第一个spinner,滑动屏幕后,发现隔三个就跟着第一个一起改变了。。。 |
|
返回顶楼 | |
发表时间:2011-12-27
mpqi 写道 有点恶心。
我在listview里面加了spinner控件。 结果我更改带第一个spinner,滑动屏幕后,发现隔三个就跟着第一个一起改变了。。。 文章已经提到,ListView里面的item是重用的,也就是如果只想第一个带spinner,那么就需要根据当前行判断是不是第一行,是就带,不是就要做一下处理,不能不管。 |
|
返回顶楼 | |