南京学思XSuperNEST中ListView优化

原创 2015年11月19日 22:09:33

XSuperNEST用ListView把数据展示给用户,为了更好的增强用户体验,我们要对其进行进一步的优化。


我这里说一下我用 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,特别推荐看一下这个文章:https://code.facebook.com/posts/879498888759525/fast-rendering-news-feed-on-android/
7、为了保证 ListView 滑动的流畅性,getView() 中要做尽量少的事情,不要有耗时的操作。特别是滑动的时候不要加载图片,停下来再加载,这个库可以帮助你 Glide:https://github.com/bumptech/glide
8、使用 RecycleView 代替。 ListView 每次更新数据都要 notifyDataSetChanged(),有些太暴力了。RecycleView 在性能和可定制性上都有很大的改善,推荐使用。

南京学思XSuperNest使用addHeaderView注意事项

在做学思钢板管理系统的项目中用到了addHeaderView,现在把注意事项记下来 1、item内如果有button等控件时,在监听listview的onitemclick事件时,焦点会被item内...
  • njxuesi
  • njxuesi
  • 2015年11月19日 22:08
  • 258

访学有感------------南京访学一周小记

一.初探南京 南京,简称宁,是江苏省会。南京地处长江下游沿岸,江苏省西南部,邻靠安徽省。初到南京时,将近九点,晚上,坐在地铁上看南京,表面上与北上广等其他大都市没有什么区别。但是,走在南京的小巷上,...
  • lxx_nico
  • lxx_nico
  • 2014年11月30日 23:26
  • 1706

嵌入式 FAAC1.28 在海思HI3518C/HI3518A平台linux中的编译优化

FAAC1.28的下载地址:http://www.audiocoding.com/downloads.html 如何编译: 1../configure --host=arm-hisiv10...
  • skdkjxy
  • skdkjxy
  • 2014年10月24日 18:24
  • 2441

Android性能优化之提高ListView性能的技巧

ListView优化一直是一个老生常谈的问题,不管是面试还是平常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看如何最大化的优化ListView的性能。...
  • nugongahou110
  • nugongahou110
  • 2015年07月29日 15:13
  • 13932

Android之——ListView优化

作为客户端,其最主要的任务就是最直观的和用户交互。从服务器拿数据,解析过后显示数据,根据用户操作按照一定的协议传回数据,达到用户想要的结果。这是我自己的理解,所以我们的程序,必须给用户一个良好的体验。...
  • l1028386804
  • l1028386804
  • 2015年08月02日 18:10
  • 2457

Android性能优化--listview 优化机制

详情参考:http://www.cnblogs.com/Android-xiansheng/p/4627124.html 首先来了解一下ListView的工作原理(可参见http://mobil...
  • u010921385
  • u010921385
  • 2016年09月04日 22:12
  • 4455

南京学思利用Json进行数据传输

一.Json的简介。 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 JSON 数据的书写格式是:名称/值对。名称/值对组合中的名称写在前面(在双引...
  • njxuesi
  • njxuesi
  • 2015年05月29日 14:52
  • 288

学而思总裁曹允东谈创业:融资意识很重要

学而思(XRS)国际教育集团总裁曹允东的创业起点来自于6年前的一次经历,他和北京大学的研究生同学张邦鑫一起做家教,教出的学生连续考了三个100分。这个小小的胜利让两人有了投身教育的自信,并决心在这个特...
  • wenrenhua08
  • wenrenhua08
  • 2014年09月27日 00:00
  • 1196

ListView的四种优化方式

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

面试题:如何优化ListView的性能?

在回答这个问题前,我认为很有必要和大家讲几点和getView相关的问题。我们设置或者优化ListView的性能很多时候都是在getView中完成的,反过来说就是很多性能问题都是由于没有正确使用getV...
  • AuthFailure
  • AuthFailure
  • 2016年09月01日 13:32
  • 522
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:南京学思XSuperNEST中ListView优化
举报原因:
原因补充:

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