优化listview 有哪些方法

 我来答
huanglenzhi
2016-12-23 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517193
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
1.重用 convertView 用以避免重复创建 View,重复创建 View 代价较大,而且如果重用 view 不改变宽高,重用View可以减少重新分配缓存造成的内存频繁分配/回收;
2. 避免在 getView 中有 重复调用的 findViewByIdfindViewById 的实现是遍历,如果你定义的 View 越复杂代价越大。Google 推荐的做法是用 ViewHolder,然后保存在 view 的 tag 中。现在 RecyclerView 也是强制使用 ViewHolder 了。
3. 设置 View (如 TextView#setText )之前先对比数据是否有改变一般来说,【比较两个数据的代价】远小于【 View 的重绘的代价】
4. 避免在 getView 函数中直接加载 Image 或做其他比较耗时的操作加载本地 Image 需要载入内存以及解析 Bitmap ,都是比较耗时的操作。用户快速滑动列表时,会大量调用 getView ,而 getView 是在主线程中被调用的。如果你在 getView 函数中直接加载 Image 或做其他耗时操作,就会造成滑动比较卡。加载 ImageView 的解决方案就是开一个线程去把做这事。有很多第三库可以做这事。
5. ListView 中元素避免半透明半透明绘制需要大量乘法计算,在滑动时不停重绘会造成大量的计算,在比较差的机子上会比较卡。在设计上能不半透明就不不半透明。实在要弄的话我个人是用个比较偷懒的方法,是在滑动的时候把半透明设置成不透明,滑动完再重新设置成半透明。
6. 尽量开启硬件加速硬件加速提升巨大,避免使用一些不支持的函数导致含泪关闭某个地方的硬件加速。当然这一条不只是对 ListView。
7. 用 ListView 威力加强版 -- RecyclerView更多的新武将,更多的姿势,更规范的使用,更好用的动画,更加强大的变化
全球塑胶网
2016-12-23 · 百度认证:杭州志卓科技股份有限公司
全球塑胶网
全球塑胶网(www.51pla.com)是面向塑料橡胶产业链、服务于塑料橡胶行业中小型企业的电子商务平台。
向TA提问
展开全部
第一种优化就是重用convertView,
第二种优化是ViewHolder的使用
第三种优化是使用分段加载
第四种优化方式是使用分页加载
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式