ListView,GrildView使用时候经常会用到缓存机制,随意一搜,例子成千上万,但是讲解都是很一致,跟自己踩的坑很少有人讲解到。

测试 需求: GrildView 分三列显示,默认背景为白色,如果当前ID能被2整除 就显示一张图片,如果能被三整除并且不能被2整除 背景变成灰色。

getView代码:

运行显示:第一张图未进行滑动之前显示正常,然后随意滑动回来显示第二张图,呵呵,那么问题来了,图片顺序错乱了,但是为什么名字没错乱呢,呵呵,这一切都是缓存没有用好惹的货。

回过头再进行分析getView中的代码,我们知道,缓存会记录当前界面的View的状态,那么,滑动回来,之所以文字没有错乱是因为每次都是重新赋值的,但是我们的view确是有条件的判断赋值的,也就是说 没有重新赋值,会在上一个界面的缓存状态中在进行判断,就造成了 灰色背景上会出现图片这一错乱问题,解决方法就是,106-109行的代码注释掉,取消注释,每次过来一屏都重新给view赋值,就不会出现顺序错乱了。

转载于:https://www.cnblogs.com/LIANQQ/p/4078778.html

ListView缓存机制踩过的坑相关推荐

  1. ListView缓存机制小结

    文章目录 ListView缓存机制小结 前言 概述 layout过程 第一次Layout 第二次Layout 滑动事件 参考资料 ListView缓存机制小结 前言 由于本人水平有限,如果文章中出现一 ...

  2. 解决ListView 缓存机制带来的显示不正常问题

    ListView加载数据原理:系统绘制ListView时,首先会用getCount()函数得到要绘制的这个列表的长度,然后开始逐行绘制.然后调用getView()函数,在这个函数里面首先获得一个Vie ...

  3. Android笔记(二十五) ListView的缓存机制与BaseAdapter

    之前接触了ListView和Adapter,Adapter将数据源和View连接起来,实际应用中,我们要显示的数据往往有很多,而屏幕只有那么大,系统只能屏幕所能显示的内容,当我们滑动屏幕,会将旧的内容 ...

  4. 【腾讯Bugly干货分享】Android ListView与RecyclerView对比浅析--缓存机制

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5811d... 作者:黄宁源 一,背景 RecyclerView是谷歌官方出的一 ...

  5. ListView和GridView的缓存机制及measure过程

    目录 前言 1.View的Transient状态 2.RecycleBin 3.obtainView 4.getView的调用 5.GridView的onMeasure 6.ListView的onMe ...

  6. Android学习——ListView的缓存机制

    在使用ListView的时候,需要加载适配器和数据源,这篇文章主要介绍一下ListView的使用以及利用ListView的缓存机制来减少系统的初始化时间. ListView的使用 ListView和V ...

  7. delphi listview 添加数据 慢_ListView 的缓存机制

    一.前言 ListView 作为一个 Android 5.x 之前的一个用于显示数据列表的控件,或许在今天都已经被 RecyclerView 完全替代,但是其中的缓存机制仍然值得我们去了解,对后面学习 ...

  8. android listview 缓存,探究Android ListView 的缓存机制

    概述 ListView 是继承AbListView,AbListView是所有列表类控件的基类. ListView的数据加载 在ListView数据加载中最关键的一个函数就是makeAndAddVie ...

  9. Picasso之图片缓存机制二ListView篇

    前面已经个大家介绍Picasso图片缓存机制,大家不熟悉请看上一篇文章http://blog.csdn.net/qq_15950325/article/details/52809380,其实Picas ...

最新文章

  1. Boost之正则表达式_[转]
  2. python语言if语句-Python中的if判断语句入门
  3. Linux下安装Tomcat7
  4. linux sql server硬件要求,SQL Server On Linux(20)—— SQL Server On Linux性能(6)——针对性能的配置(Linux层面)...
  5. java空间租用_java影片租赁平台
  6. handle search in myNote app
  7. 机器学习笔记1(K-近邻算法)
  8. Nexus:一站式私有仓库管理(NuGet、Maven、npm、Docker)
  9. Spyder 常用操作
  10. 东方通TongWeb部署应用中文件不下载而在页面打开
  11. vscode中java打包exe
  12. 2022全球C++及系统软件技术大会将于9月上海隆重召开,豪华嘉宾阵容揭晓
  13. 三步解决error Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
  14. 网络数据取证平台行业小调研
  15. AC自动机(Automaton)
  16. 为什么说HTTP协议是无状态的
  17. 网络/交换机和路由器区别
  18. [ML-03] Matplotlib-3
  19. html5 高度 满屏,HTML5 全屏特性
  20. HDU 6411 带劲的and和【枚举贡献】

热门文章

  1. mysql group by能用到索引吗_`MySQL GROUP BY使用索引时速度较慢
  2. python泰坦尼克号数据预测_机器学习入门之Python机器学习:泰坦尼克号获救预测一...
  3. 2020年计算机一级B押题,2021年全国计算机一级选择题真题押题.doc
  4. 红旗linux 装xp,XP下硬盘安装红旗LINUX
  5. 怎么锁定计算机不让其他人安装,win10如何锁定电脑不让别人打开
  6. Oracle从零开始3——复杂查询
  7. Java基础---数组练习(最大值、最小值的索引)
  8. 解决mac安装homebrew后报错-bash: brew: command not found
  9. 网页嵌入pdf、在线预览pdf工具及插件(转)
  10. centos7手把手教你搭建zabbix监控