2 leilba leilba 于 2016.01.21 15:22 提问

Android ListView的adapter中如何重用不同类型的item

如题,我要做的效果是一个listView中能显示不同类型的item,而且我希望同一类的item能够在滑动时候进行重用。
比如说,我一个listView中,会显示纯文字的item、纯图片的item、纯视屏的item,我在滑动的时候会根据我的数据类型进行选择加载,我希望我除了开始的时候为它们创建view以外,之后滑动下去以后都是重用之前的item,纯文字的item重用之前显示过的纯文字的item、纯图片的item重用之前显示过的纯图片的item、纯视屏的item重用之前显示过的纯视屏的item

7个回答

duo2005duo
duo2005duo   2016.01.21 20:11
已采纳

你的例子里面纯文字的item、纯图片的item、纯视屏的item共3种type
1.继承BaseAdapter
2.覆盖如下方法
1)getViewTypeCount() 你的例子是返回3
2 ) getItemViewType() 为你的每种item顶一个编号,形成position到type的映射
3.接下来你就可以在getView中重用对象,之前已经有position到type的映射了,你可以得到convertview当前的type类型了
4.不谢

leilba
leilba 还是要谢谢你
接近 2 年之前 回复
qq_15771061
qq_15771061   2016.01.22 14:42

getItemViewType(),getViewTypeCount()
http://blog.csdn.net/qq_15771061/article/details/50278407

danielinbiti
danielinbiti   Ds   Rxr 2016.01.21 15:33

只能屏幕可见的缓冲区重用。
不同布局自己继承baseadapter,然后重写getItemViewType

Mr_dsw
Mr_dsw   Ds   Rxr 2016.01.21 15:33

你可以学习下一些listview的一些使用

qq_24829651
qq_24829651   2016.01.21 16:21

使用Google推荐使用替代ListView的RecyclerView他会自动帮你回收不用的item并重用

lxk_1993
lxk_1993   Rxr 2016.01.21 16:39

可以让后台返回一个item的标识 在adapter 的 getview 根据标识进行选择

qq_27578023
qq_27578023   2016.06.10 22:12

你的例子里面纯文字的item、纯图片的item、纯视屏的item共3种type
1.继承BaseAdapter
2.覆盖如下方法
1)getViewTypeCount() 你的例子是返回3
2 ) getItemViewType() 为你的每种item顶一个编号,形成position到type的映射
3.接下来你就可以在getView中重用对象,之前已经有position到type的映射了,你可以得到convertview当前的type类型了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!