返回信息流嗯VH就是用来复用的对吧
但是我的listview里有3种item的时候,怎么复用VH呢?
每次convertview的种类都不知道是什么...
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #16844同步于 2014/10/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖
关于ViewHolder的问题
icyfox
2014/10/11镜像同步16 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
种类其实好分辨
但是比如说现在要加载的是item_layout1
结果convertView是个item_layout2
那convertview还有意义吗?
【 在 xlover (Nie) 的大作中提到: 】
: 给你的View设置一个tag
【 在 icyfox 的大作中提到: 】
: 种类其实好分辨
: 但是比如说现在要加载的是item_layout1
: 结果convertView是个item_layout2
: ...................
如果每次回收的都不是你要构造的,那肯定没办法吧。
当然如果你的不同item差距不是很大的话,可以考虑都写成到一个View,然后用不同的controller去控制显示。
重写public int getViewTypeCount()和public int getItemViewType(int position)方法
第一个返回你的item最大不同类型个数,自己决定,比如3个的话,直接返回3。
第二个返回当前position item类型,也是自定义,比如有三个类型,然后你返回1,2,3
然后在getView里面根据getItemViewType(position)判断当前类型
类似
int type = getItemViewType(position);
if (convertView == null) {
switch (type) {
case 类型1:
................
}
}
啊。。。大家都没搞懂我的核心问题么。。
核心问题是
getView时发现种类是2,这时候vh类型是3
就要重inflate了
这样下去,vh的意义不存在了
【 在 cowfighting (小奶牛| xycoding.com) 的大作中提到: 】
: 重写public int getViewTypeCount()和public int getItemViewType(int position)方法
: 第一个返回你的item最大不同类型个数,自己决定,比如3个的话,直接返回3。
: 第二个返回当前position item类型,也是自定义,比如有三个类型,然后你返回1,2,3
: ...................
通过『我邮2.0』发布