`
aijuans
  • 浏览: 1558692 次
社区版块
存档分类
最新评论

ListView的缓存机制

阅读更多

说到ListView当然少不了Adapter了,Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面的额时候,都会调用AdaptergetView()这个方法返回一个View。这样,ListView中有多少项,就应该调用多少次getView()方法去绘制每一项的界面。如果项数少的时候(几十行),这是没问题的。但是如果有一万行,一百万行,那么就会出现问题了,它会占用系统极大的内存,所以必须采用性能优化的方法。

 

先说一下ListView的工作原理:ListView工作的时候,会针对每个item,要求Adapter对象返回一个ViewgetView()方法),也就是说,Listview在开始绘制的时候,系统首先调用getCount(),根据其返回值得到ListView的长度,然后根据这个长度,调用getView()一行一行的绘制ListView的每一项。

 

搞清楚了ListView的工作原理,我们就可以来看ListView的缓存机制了,如下:

 

1)如果有几千,几万行甚至更多的代码的时候,其中只有课件的项存在于内存中,其他的都在Recycler中,RecycleAndroid中专门用来处理缓存的组件。

 

2ListView先通过getView()方法请求一个View,然后请求其他可见的View。这时convertViewgetView中是空的。

 

3)当列表第一项滚出屏幕,并且一个新的项从屏幕低端上来时,ListView会再请求一个View,这时,convertView已经不是空值了,它的值是滚动出屏幕的第一项,之后只需要设定新的数据,然后返回convertView即可,而不必重新创建一个View

1
4
分享到:
评论

相关推荐

    ListView缓存机制

    本文将深入探讨ListView的缓存机制,帮助开发者优化应用性能。 ListView的缓存机制主要由两部分组成:View缓存(ViewHolder模式)和视图状态缓存(Recycling Mechanism)。 首先,我们来看**ViewHolder模式**。这...

    ListView适配器及缓存机制

    ListView适配器及缓存机制

    ListViewDemo缓存

    二、ListView缓存机制 1. View Holder模式:这是ListView性能优化的关键。View Holder是一个内部类,用于存储每个列表项视图的子视图对象。通过复用ViewHolder,避免了每次绑定数据时寻找子视图的操作,大大提高了...

    ListView总结---关于ListView的一些分享

    同时,AdapterView类的onLayout()方法和AbsListView的recycleAndFill()方法是理解ListView缓存机制的关键。 六、工具支持 Android Studio提供了多种工具来帮助开发者调试ListView,如Hierarchy Viewer用于查看布局...

    Asynctask异步加载带图的listview,加入lru缓存机制

    - 使用Picasso、Glide等库,它们内置了缓存机制,可以简化图片加载过程。 - 考虑使用RecyclerView替代ListView,因为它有更好的性能优化。 总之,理解并正确使用ASyncTask进行异步加载,结合LRU缓存策略,能显著...

    listview优化图片缓存例子

    如果没有缓存机制,每次滚动时都会重新加载图片,导致不必要的网络请求和内存消耗,严重影响性能。 二、图片缓存的实现方式 1. 内存缓存:内存缓存是一种高效的缓存方式,它将图片存储在应用程序的内存中。当需要...

    基于LruCache listView缓存图片工具类

    `LruCache`是Android SDK提供的一种内存缓存机制,它可以帮助我们优化应用程序的性能,减少对内存的消耗,提升用户体验。本文将深入探讨如何使用基于`LruCache`的图片加载工具类在ListView中实现图片缓存。 首先,`...

    ListView双缓存DLL

    将这个DLL添加到VB.NET项目中,可以使得ListView控件自动支持双缓存机制,无需程序员手动处理复杂的绘图逻辑。使用方法通常是通过P/Invoke(平台调用)技术,调用DLL中的方法,将其功能集成到VB.NET程序中。 双缓存...

    MultipleItemList

    本篇文章将深入解析ListView缓存机制的源码,探讨其工作原理,以及每个convertView的调用过程。 首先,我们了解ListView的核心类`AdapterView`,它是`ListView`的基类,负责处理数据与视图的映射。`AdapterView`...

    一个很好的ListView缓存图片案例

    在Android开发中,ListView是一个非常常见的组件,用于展示大量数据列表。然而,当这个列表包含图片时,如果没有正确的优化,可能会导致...对于Android开发者来说,理解和掌握这样的缓存机制是提升应用性能的必备技能。

    ListView性能优化之视图缓存

    ListView 的视图缓存机制是指 ListView 在显示数据时,会将已经显示的视图缓存在内存中,以便在下一次显示时直接使用,这样可以减少视图的创建和销毁,提高 ListView 的性能。convertView 是 ListView 中的一个重要...

    ListViewTest源码

    4. **ListView缓存机制**:ListView采用了一种称为“视图缓存”的机制,只加载屏幕可见的列表项,当用户滚动时,将不再显示的项回收,复用来显示新内容。这种机制称为“滚动视图缓存”。 5. **图片加载优化**:在`...

    安卓listview相关相关-listview获取网络图片缓存优化.zip

    首先,我们需要理解ListView的工作机制。ListView通过复用convertView(即ViewHolder模式)来提高性能,但这同时也意味着同一视图可能被多次重用,需要在每次显示时更新正确的内容。如果图片加载不当,就可能出现...

    ListView异步加载图片三级缓存

    同时,配合图片加载库(如 Glide、Picasso 或 Universal Image Loader)来实现三级缓存机制。以下是一些关键步骤: 1. **初始化缓存**:在应用启动时,初始化内存和磁盘缓存,设置合适的大小。 2. **图片加载**:...

    android的viewpager+fragment+listView图片缓存

    这里我们将使用开源图片下载库`Universal Image Loader`来实现图片的缓存机制。 首先,`ViewPager`是一个用于展示多个页面视图的组件,通常用于实现滑动切换的效果。它可以和`FragmentPagerAdapter`或`...

    ListView实现图片在本地缓存

    常用的本地缓存机制有内存缓存和磁盘缓存。内存缓存速度快,但容量有限,适合存储近期频繁访问的数据;磁盘缓存容量大,但读写速度相对较慢,适用于长期存储数据。我们可以使用像LruCache(内存缓存)和DiskLruCache...

    ListView加载网络图片优化(加二级缓存使滑动流畅)

    本示例通过引入二级缓存机制来优化这一情况,使得在滑动ListView时能保持流畅的用户体验。 首先,我们要理解“双缓存”是什么。在Android中,双缓存通常指的是内存缓存和磁盘缓存。内存缓存是将数据存储在手机的RAM...

    listview的图像加载

    在Android开发中,ListView是一种常见的组件...总的来说,解决ListView中图片加载问题需要结合缓存机制和高效的图片加载库。通过合理利用这些工具,可以显著提高应用的性能和用户体验,避免图片加载的错位、错乱问题。

Global site tag (gtag.js) - Google Analytics