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

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

问题描述:

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

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

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

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

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

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

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