convertView与ViewHolder有什么区别,好处在哪里

   

convertView 在API中的解释是The old view to reuse, if possible, 第一次getView时还没有convertView,这时你便创建了一个新的view,下次getView时就有这个“旧的”convertView了  setTag的作用才是把查找的view通过ViewHolder封装好缓存起来方便多次重用,当需要时可以getTag拿出来 当你的listview里布局多样化的时候 viewholder的作用就有比较明显的体现了。 当然了,单一模式的布局一样有性能优化的作用 只是不直观。  假如你2种模式的布局 当发生回收的时候 你会用setTag分别记录是哪两种   这两种模式会被封装到viewholder中进行保存方便你下次使用。

convertView与ViewHolder有什么区别,好处在哪里

时间: 2024-11-12 00:08:50

convertView与ViewHolder有什么区别,好处在哪里的相关文章

Android之ListView性能优化——使用ConvertView和ViewHolder

使用ConvertView和ViewHolder的优化是针对ListView的Adapter(BaseAdapter)的.这种优化的优点如下: 1)重用了ConveertView,在很大程度上减少了内存的消耗.通过判断ConvertView是否为NULL,如果是NULL那么就需要生成一个新的View出来(通过LayoutInflater生成),绑定数据后显示给用户:如果ConvertView不是NULL,则我们需要做的就只有绑定数据并呈现给用户. 2)由于ListView中的Item往往都是只有

convertView、viewholder requestlayout与adapter的刷新机制

convertView和viewholder作为adapter中复用数据的标配,应用范围很广,但是需要注意,在一些地方,需要相对复杂地动态刷新操作,converview要复用起来就给自己找难受了. 例如说最近做项目的一个复选节点的问题,当一个父节点下面的子节点被选中,这时会把他的converview设置background,紧接着如果点击父节点收缩该节点(即适配该adapter的数据减少),那么问题出现了,由于convertview是按照position来get的,并且可以复用,那么原来子节点的

ListView性能优化——convertView&viewHolder

ListView优化大致从以下几个角度:1.复用已经生成的convertView:2.添加viewHolder类:3.缓存数据(图片缓存):4.分页加载. http://www.cnblogs.com/itstudent/p/3729117.html

ListView中convertView和ViewHolder的工作原理

LsitView和Adapter 参考:http://www.cnblogs.com/xiaowenji/archive/2010/12/08/1900579.html 工作原理: 1.ListView针对List中每个item,要求adapter给我一个视图(getView) 2.一个新的视图被返回并显示 如果我们有上亿个item要显示怎么办?为每个项目创建一个新视图?NO!这不可能~~~Android实际上为你缓存了视图 Android中有个叫做Recycler(反复循环器)的构件,下图是它

万能Adapter以及ViewHolder性能优化

//CommonAdapter import android.content.Context; import android.widget.BaseAdapter; import java.util.List; /** * Created by Administrator on 2016/1/28. */ public abstract class CommonAdapter<T> extends BaseAdapter { private List<T> mDatas; priv

Android点滴---ViewHolder通用,优雅写法

近期在做项目时,又要写 ViewHolder. 突然想到网上看看有没什么好的写法! 不知道你是不是也烦透了写那些没有技术含量的ViewHolder 看看这些.也许会有收获! 然后就找到了以下两篇文章(感谢分享! ): ViewHolder超简洁写法 点击跳转 优雅的使用ViewHolder 点击跳转 然后自己整理的了, 保存起来.省的忘记.顺便分享一下! 直接贴代码了: 第一种: import android.util.SparseArray; import android.view.View;

ListView之ViewHolder模板

private List<SomeModel> modelLists = null; private class MyListSomeModelAdapter extends BaseAdapter{ @Override public int getCount() { return modelLists.size(); } @Override public Object getItem(int position) { return modelLists.get(position); } @Ov

Android应用系列:值得收藏的ViewHolder工具类实现

前言 在开发APP的过程中,攻城狮少不了要跟ListView.GridView这些组件眉来眼去,暗送几波秋波.自然原生态美人BaseAdapter更是程序员的最爱,有了它,我们想怎么干就能怎么干,嘿嘿,你懂的O(∩_∩)O哈哈~ 但是,每次写一个BaseAdapter,我们都很自觉的给他写一个ViewHolder,一两个还好,万一应用程序中有数不清的ListView,呵呵~你妹!千篇一律,看得都审美疲劳.作为最伟大的第二十二世纪的程序员们,脱掉.搞上永远是我们最真挚的追求,所以我们要怎么将Vie

分享:SringBuffer与String的区别

·作为Java中最为基础的部分,在Java的学习过程中,就一定会学习到字符串,其中String类作为字符串.并且在Java所有的程序中是使用字符串都是使用String类去实现. 两者存在一定的通性,都是可以储存和操作字符串,即包含多个字符的字符串数据. 但是StringBuffer与Sting的区别在哪里? 下面将讲述Sting与StringBuffer最为关键的区别之处在哪里? 1.从字符串的内容是否可以被修改上 String:字符串作为常量:则有一个这样的通性,它们的值在创建之后不能更改.在