当我们在使用listview的时候。有时候自定义adapter的时候,是不是会发现在getview里打印日志的时候,重复调用很多次?有时候 4次。有的严重甚至到10次,当我们在listview中移动的时候。每移动一列都会调用很多次,这样大大影响到效率!其实这和listview本身在 android上的机制有关。下面我开始来介绍一下吧:

在布局,我们只有一个listview的时候。那好。我们把高设置成wrap_content的时候。在listview里加载几行看看。日志在 getview里打印一下。是不是重复调用了?那这个办法就好弄了。把高设置成fill_parent就成了。这个时候发现日志还是重复调用?那就要看一 下Listview的上一级而已的高是不是也是设置也fill_parent的,如果不是。请改动吧。如果是。。。那我还真没碰到重复调用的!因为测试好 几次了!

如果我们在而已里不只一个Listview。一个复杂好看的布局可能有很多。listview在布局的某个地方。这个时候有时候运气不好。你会发现你调用 了很多次getview。我测试的时候。最高230次。。。可想而知。这个速度是相当慢。而且每移动一次就是调用这么多次!对于这样的情况,在修改布局的 时候,要考虑以下两点:1.首先考虑需求布局和性能哪个更重要一点。2.考虑listview周边哪个布局控件影响到了它!

如果在性能上没有太大影响,而需求要求必需是那样的布局。那就以布局为主。看看有没有别的方法来优化一下listview,当然前提是布局一点都不能调 整。如果能调整,布局没有太大变动。而listview又能很好的优化。那就当然优化了!当我们优化的时候。首先要看一下有没有影响到Listview重 绘的控件,比如。如果它上面和下面都有控件。而且高都是wrap_content,那么你就要设置成fill_parent或者固定高。这样 listview在高上就不会重绘,这是最主要的一点。那左右是不是也有控件(一般一个手机页面用到list的时候不会有这么多控件)?有,那我们就也要 调整,那就同高一样的设置。一定要让listview是一个固定在那个地方不动的。不然,你就等着让他重复去调用吧!

其实说了这么多。最主要的还是在我们进行布局的时候。要巧妙的运用每个控件的属性,以及了解控件每个的原理。这样在我们进行UI设计的时候,才能很好的去结合!

转自  http://blog.csdn.net/f8376904110/article/details/6460934

转载于:https://www.cnblogs.com/kobi-w/archive/2012/02/06/2340316.html

android listview 连续调用 getview问题分析及解决。相关推荐

  1. ListView连续调用getview问题分析及解决

    当我们在使用listview的时候.有时候自定义adapter的时候,是不是会发现在getview里打印日志的时候,重复调用很多次?有时候4次.有的严重甚至到10次,当我们在listview中移动的时 ...

  2. Android ListView反复调用getView和getCount

    最近做项目发现一个界面当有ListView是,getView和getCount中的log被疯狂调用.一个5个Item的ListView,getView竟然会被反复调用7组.尤其是当ItemView中需 ...

  3. [Android]ListView的Adapter.getView()方法中延迟加载图片的优化

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4139998.html 举个例子吧,以好友列表为例 ListVi ...

  4. 一次Android App NDK崩溃问题的分析及解决

    文章目录 小结 NDK崩溃的问题 通过logcat查看崩溃日志 提取`tombstone`的记录 通过ndk-stack来输出日志 取得的日志 分析并解决 分析 使用add2line定位具体报错的行数 ...

  5. Android oom pthread_create (1040KB stack)分析及解决

    首先看一下错误信息如下 java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Out of memory     at j ...

  6. Android ListView异步加载图片乱序问题,原因分析及解决方案

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/45586553 在Android所有系统自带的控件当中,ListView这个控件算是 ...

  7. Android服务函数远程调用源码分析

    在Android服务查询完整过程源码分析中介绍了客户进程向ServiceManager进程查询服务的完整过程,ServiceManager进程根据服务名称在自身维护的服务链表中查找ServiceMan ...

  8. android ListView 九大重要属性详细分析

    2019独角兽企业重金招聘Python工程师标准>>> android ListView 九大重要属性详细分析 1.android ListView 一些重要属性详解,兄弟朋友可以参 ...

  9. android listview 刷新数据,ListView中notifyDataSetChanged()刷新数据不更新原因分析

    标题 : 不作死就不会死!!!!!! 类 : ActivityA,ActivityB,BookListAdapter,Book,HttpManager 测试顺序 : ActivityA >> ...

最新文章

  1. c#.net连接access操作类(转)
  2. 009_storage.conf配置详情
  3. 计算机专业去广发银行,2019广发银行招聘计算机模拟试题
  4. JDBC操作数据库的基本流程
  5. 【dlib库】进行人脸检测+人脸关键点检测+人脸对齐
  6. 关于bash中if语法结构的广泛误解(转)
  7. A Byte of Python 笔记(12)python 标准库:sys、os,更多内容
  8. Recycleview notifyDataSetChanged()方法调用出现IllegalStateException 问题的解决
  9. MyEclipse 10 破解
  10. 东电计算机专业好就业吗,东北电力大学就业前景怎样好不好
  11. 计算机网络应用云计算,计算机网络云计算技术应用
  12. “哥”不信“神马浮云”
  13. 【毕业设计】基于微信小程序的在线答题考试系统
  14. android获取GPU信息;android获取GPU渲染器、供应商、版本和扩展名等信息
  15. 实验11-1-7 藏头诗 (15分)
  16. python python中max()函数的用法
  17. matlab用ifft,ifft(matlab中ifft是什么意思)
  18. 视频网站服务器该怎么选择呢
  19. 备份iphoneXR手机照片
  20. ad中按钮开关的符号_电工新手必经之路:按钮开关结构原理及安装

热门文章

  1. 在兼职的情况下,有什么办法可以在年底之前挣5000到一万块?
  2. 父亲去年喂猪挣了21万
  3. OKR是什么、OKR有什么用?
  4. 有的网线接口为什么做不到轻薄化?
  5. 买一部干干净净的安卓手机为什么那么难?
  6. ios13.5正式版信号怎样?
  7. sql组合键设置外键_学习SQL:外键
  8. Kotlin-Note
  9. linux配置部署nginx
  10. [NOIp2016]天天爱跑步 线段树合并