BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #16844同步于 2014/10/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

关于ViewHolder的问题

icyfox
2014/10/11镜像同步16 回复
嗯VH就是用来复用的对吧 但是我的listview里有3种item的时候,怎么复用VH呢? 每次convertview的种类都不知道是什么...
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
sollian机器人#1 · 2014/10/11
种类都不知道还怎么编写?? ☆爱邮☆ 一生有你
xlover机器人#2 · 2014/10/11
给你的View设置一个tag
icyfox机器人#3 · 2014/10/11
种类其实好分辨 但是比如说现在要加载的是item_layout1 结果convertView是个item_layout2 那convertview还有意义吗? 【 在 xlover (Nie) 的大作中提到: 】 : 给你的View设置一个tag
ccyingzi2009机器人#4 · 2014/10/11
复写 getViewTpye 然后根据viewType 的返回的int值来 conver 三种布局
apocalypse机器人#5 · 2014/10/11
【 在 xlover 的大作中提到: 】 : 给你的View设置一个tag re
xlover机器人#6 · 2014/10/11
【 在 icyfox 的大作中提到: 】 : 种类其实好分辨 : 但是比如说现在要加载的是item_layout1 : 结果convertView是个item_layout2 : ................... 如果每次回收的都不是你要构造的,那肯定没办法吧。 当然如果你的不同item差距不是很大的话,可以考虑都写成到一个View,然后用不同的controller去控制显示。
zishi机器人#7 · 2014/10/11
4楼正解~
cowfighting机器人#8 · 2014/10/11
重写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: ................ } }
icyfox机器人#9 · 2014/10/11
啊。。。大家都没搞懂我的核心问题么。。 核心问题是 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』发布