优化 listview 有哪些方法?

原创 2016年08月29日 10:24:06

我这里说一下我用 ListView 的一些经验,为了尽量说的全面一些,这里列一些 Tips,具体的代码可以找相关的文章,或者一起交流:
  1. 首先,虽然大家都知道,还是提一下,利用好 convertView 来重用 View,切忌每次 getView() 都新建。ListView 的核心原理就是重用 View。ListView 中有一个回收器,Item 滑出界面的时候 View 会回收到这里,需要显示新的 Item 的时候,就尽量重用回收器里面的 View。
  2. 利用好 View Type,例如你的 ListView 中有几个类型的 Item,需要给每个类型创建不同的 View,这样有利于 ListView 的回收,当然类型不能太多;
  3. 尽量让 ItemView 的 Layout 层次结构简单,这是所有 Layout 都必须遵循的;
  4. 善用自定义 View,自定义 View 可以有效的减小 Layout 的层级,而且对绘制过程可以很好的控制;
  5. 尽量能保证 Adapter 的 hasStableIds() 返回 true,这样在 notifyDataSetChanged() 的时候,如果 id 不变,ListView 将不会重新绘制这个 View,达到优化的目的;
  6. 每个 Item 不能太高,特别是不要超过屏幕的高度,可以参考 Facebook 的优化方法,把特别复杂的 Item 分解成若干小的 Item,特别推荐看一下这个文章:code.facebook.com/posts
  7. 为了保证 ListView 滑动的流畅性,getView() 中要做尽量少的事情,不要有耗时的操作。特别是滑动的时候不要加载图片,停下来再加载,这个库可以帮助你 Glide:github.com/bumptech/gli
  8. 使用 RecycleView 代替。 ListView 每次更新数据都要 notifyDataSetChanged(),有些太暴力了。RecycleView 在性能和可定制性上都有很大的改善,推荐使用。
  9. 有时候,需要从根本上考虑,是否真的要使用 ListView 来实现你的需求,或者是否有其他选择?
写的有点散,有些也是相互穿插的。这里面提到的都是一些原则,详细的解决方案,每个都能在网上找到相关的文章。

ListView的四种优化方式

优化方式一: 第一种优化就是重用convertView,这也是最简单的一种优化方式,就是在Adapter类的getView方法中通过判断convertView是否为null,是的话就需要在创建一个...
  • Xk632172748
  • Xk632172748
  • 2016年07月18日 15:35
  • 8627

优化 listview 有哪些方法?

作者:吴晶 链接:http://www.zhihu.com/question/19703384/answer/56758275 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转...
  • findsafety
  • findsafety
  • 2016年04月16日 18:06
  • 241

优化 listview 有哪些方法?

在逛知乎的时候看见了这个提问,里面大神的回答给了我很多很有用的帮助,所以转来博客里,以防以后找不到。如有侵权,请通知我删除。 原文章地址:http://www.zhihu.com/question/...
  • tangxuankai
  • tangxuankai
  • 2015年07月29日 12:05
  • 243

ListView优化方案

一、复用convertView,减少findViewById的次数1、优化一:复用convertViewAndroid系统本身为我们考虑了ListView的优化问题,在复写的Adapter的类中,比较...
  • fenghai22
  • fenghai22
  • 2015年03月10日 13:26
  • 6629

Android中ListView的几种常见的优化方法

Android中的ListView应该算是布局中几种最常用的组件之一了,使用也十分方便,下面将介绍ListView几种比较常见的优化方法:...
  • cyp331203
  • cyp331203
  • 2014年09月25日 10:26
  • 2793

CSS 优化、提高性能的方法有哪些?

CSS优化主要是4个方面: 加载性能 主要是从减少文件体积,减少阻塞加载,提高并发方面入手 选择器性能 渲染性能 可维护性 较为具体的优化方案: 慎重使用高性属性:浮动、定位; 去除空规则; ...
  • sjinsa
  • sjinsa
  • 2017年05月01日 22:20
  • 799

几个优化方法

优化问题指的是,给定目标函数f(x),我们需要找到一组参数x,使得f(x)的值最小。 常见的几类优化算法有:梯度下降法(GD)、批量梯度下降法(BGD)、随机梯度下降法(SGD)、牛顿法、拟牛顿法、共...
  • bojackhosreman
  • bojackhosreman
  • 2017年04月01日 11:02
  • 1547

你有哪些性能优化的方法?

你有哪些性能优化的方法?   (1) 减少http请求次数:CSS Sprites, JS、CSS源码压缩、图片大小控制合适;网页Gzip,CDN托管,data缓存,图片服务器。     (2)...
  • zxxvip
  • zxxvip
  • 2017年06月16日 00:38
  • 798

优化sql 语句的几种方式

1、 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1...
  • u014236541
  • u014236541
  • 2015年11月17日 18:10
  • 2382

数据库优化常用方法

对于web应用开发,多数性能瓶颈均出现在数据库上,除了采用分布式架构或云处理(大公司基本上都是),更重要的是平时程序设计时要遵照一些规则,从根本上提高系统的性能,以下总结了一些常用的规则方法,仅供参考...
  • u013752791
  • u013752791
  • 2014年03月04日 22:08
  • 2067
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:优化 listview 有哪些方法?
举报原因:
原因补充:

(最多只允许输入30个字)