ListView中的条目内部的内容是不固定的,怎么做才不会出现明显的卡顿?

yangcoder 发布于 2015/08/03 14:47
阅读 1K+
收藏 0

ListView中的条目内部内容的格式是不固定的,举例来说,每个条目中可能包含文字,语音,图片,视频(总类型确定),这些内容在条目内容的排列顺序以及出现哪几种类型也是不固定的,都是由后台返回的数据决定,我这边在adapter的getView方法中每次都调用removeAllViews把原来的LinearLayout内部清空,然后重新根据数据动态的把各种类型的view动态的add到LinearLayout中,但是会出现明显卡顿,请问是不是不断地remove和add导致的,请求有什么好的方案?求教!

加载中
0
MK先生
MK先生

出现卡顿,大部分是因为图片的绘制导致,造成资源大量消耗

建议使用图片优化技术,比如优秀的LruCache

二楼说的完全对!

yangcoder
yangcoder
你们是不是都理解错题目了,简单的说现在的需求是一个条目内部的样子可能出现上千种,这个listview更像ExpandableList的感觉
0
mars_chu
mars_chu
复用item
0
yaly
yaly

1、创建不同ViewHolder

2、图片缓存优化(很多框架)

3、预加载

4、分页

0
xmfei
xmfei
二楼说的对!
0
p
peerless2012
listview里面有个type,你可以根据内容划分不同的type,会好很多
0
临安初雨
同意楼上的。用adapter提供的type去写,adapter会缓存不同type的布局。
yangcoder
yangcoder
所以我现在的做法是把一个条目拆分成多个条目,因为这样才能 使用itemViewType做,因为拆分之后条目类型就固定了,但是我想知道有没有更好的方法,比如expandablelistview之类的?
yangcoder
yangcoder
不是你们想的那么简单,多种itemViewType的方式我会用,这个需求的关键是一个条目的内容形式太多种,举例来说,一个条目中可能用文本,图片,视频,语音等等按着从上到下排列,这里文本,图片等各种类型加起来的个数不确实,后台决定,这些文本,图片等的排序由后台决定,这样算下来,一个条目的展现形式有上百种或者更多
返回顶部
顶部