`

ListView优化:对象重用

阅读更多
Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View。

public View getView(int position, View convertView, ViewGroup parent) {
  ViewHolder holder;
if (convertView == null) {
   convertView = mInflater.inflate(R.layout.list_item_icon_text, null);
   holder = new ViewHolder();
   holder.text = (TextView) convertView.findViewById(R.id.text);
   holder.icon = (ImageView) convertView.findViewById(R.id.icon);
   convertView.setTag(holder);// 使用tag保存对象
} else {
   holder = (ViewHolder) convertView.getTag();
}
   holder.text.setText(DATA[position]);
   holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);
   return convertView;
}

static class ViewHolder {
    TextView text;
    ImageView icon;
}

也可以不使用ViewHolder, 将ListItem定义为自定义用户控件。
分享到:
评论

相关推荐

    listview 适配器 优化 重用

    本篇文章将详细探讨ListView的优化策略,包括适配器的重用机制,点击事件处理,以及界面美化的技巧。 首先,ListView的核心优化在于“视图复用”(View Recycling),即convertView机制。当ListView滚动时,不再...

    安卓listview相关相关-listview适配器优化重用.rar

    本资料包"安卓listview相关相关-listview适配器优化重用.rar"可能包含了一些关于如何优化ListView适配器以实现重用机制的示例代码。 1. **ListView的工作原理** - ListView通过一个名为Adapter的数据绑定组件来...

    安卓Andriod源码——listview适配器优化重用.zip

    本资源“安卓Andriod源码——listview适配器优化重用.zip”关注的核心就是ListView适配器的优化与重用策略,以提高应用的性能和响应速度。 1. **ListView的工作原理** ListView通过一个Adapter(适配器)来连接...

    listview 适配器 优化 重用.zip安卓程序源码资源下载

    总的来说,这份"listview 适配器 优化 重用.zip"源码资源是一个宝贵的Android学习材料,它涵盖了ListView优化的重要实践,对于提高开发者在处理大数据列表时的性能意识和技能有着显著的帮助。无论是初学者还是经验...

    Android ListView性能优化

    ViewHolder模式是ListView优化的核心技巧,它可以避免在滚动时频繁地创建和查找视图对象。通过创建一个ViewHolder类来持有每个列表项视图中的子视图引用,并在getView()方法中重用已存在的ViewHolder,可以显著减少...

    Android高级应用源码-listview 适配器 优化 重用.zip

    本资源"Android高级应用源码-listview 适配器 优化 重用.zip"聚焦于ListView的高级使用,包括适配器(Adapter)的实现、性能优化以及项(Item)的重用策略。以下是对这些关键知识点的详细解释: 1. **适配器...

    安卓Android源码——listview适配器优化重用.zip

    ViewHolder模式是ListView优化的核心策略。ViewHolder是一个简单的类,持有列表项视图中的各个组件引用。在`getView()`方法中,首先检查convertView是否为空,如果不为空,就将其转换为ViewHolder对象,然后更新其...

    安卓开发-listview 适配器 优化 重用.zip

    convertView是ListView优化的关键。当一个item滑出屏幕时,ListView会复用这个视图,避免每次都创建新的View对象。如果convertView为null,表示需要新建一个View;否则,直接复用并更新数据。 4. **ViewHolder模式...

    android listview内存优化

    5. **ListView的复用机制**:ListView的视图复用是其核心优化之一,通过convertView参数在`getView()`方法中重用已创建的View,避免为每个列表项创建新的对象,减少内存开销。 6. **延时加载(Lazy Loading)**:只...

    Android开发之listview优化+图片异步加载缓存+避免图片显示闪烁

    ListView优化** ListView的优化主要涉及以下几个方面: 1.1 **convertView复用机制**:ListView的Adapter中,`getView()`方法会创建并填充新的视图,但为了提高性能,应充分利用convertView,通过`convertView....

    listview优化

    以下是对ListView优化的一些关键点和策略的详细说明: 1. **复用convertView**:ListView的工作机制是基于视图缓存的,即只有当前屏幕可见的item需要被创建。convertView参数在getView方法中用于传递已经创建并可以...

    Android中ListView常用方式:使用BaseAdapter

    2. `getItem(int position)`: 根据位置返回数据列表中的对象。 3. `getItemId(int position)`: 返回对应位置的数据项的ID,通常在有唯一ID的情况下返回。 4. `getView(int position, View convertView, ViewGroup ...

    baseAdapter绑定listView优化

    为了提高ListView的滚动性能,我们应该尽可能地重用已创建的列表项视图。在`getView()`方法中,我们首先检查传入的参数`convertView`是否为空。如果非空,那么可以直接复用,避免频繁创建新视图,从而降低内存分配...

    ListView嵌套ListView全选,多选

    7. **性能优化**:由于ListView的重用机制,需要在getView()方法中正确设置每个可见Item的Checkbox状态,避免因为Item复用导致的状态错乱。同时,对于嵌套ListView,要考虑性能问题,避免内存和计算资源的过度消耗。...

    listview重用

    // 存储ViewHolder对象,以便后续重用 } else { // 如果convertView不为空,直接获取ViewHolder viewHolder = (ViewHolder) convertView.getTag(); } // 更新视图内容 viewHolder.textView.setText(getItem...

    listView优化

    以下是一些关于ListView优化的关键知识点: 1. **分页加载**:在处理大数据集时,不应一次性加载所有数据,而是采用分页加载策略。当用户滚动到列表底部时,通过异步请求加载更多数据。这样可以减少内存消耗,提高...

    listView

    当用户滚动列表时,ListView会重用已经滑出屏幕的视图,降低内存开销。这种机制使得ListView能够在处理大量数据时保持流畅的用户体验。 在源码层面,ListView主要由以下几个关键部分组成: 1. Adapter:适配器是...

    android listview 实例demo

    在Adapter的构造函数中,我们需要传入数据源,这可以是一个ArrayList或其他集合对象,包含我们要在ListView中显示的数据。 5. **关联Adapter与ListView**: 在Activity的`onCreate()`方法中,我们找到ListView并...

    listview 分页加载,优化

    ListView是Android平台上常见的一种用于展示大量数据的视图组件,尤其在处理长列表时,它的分页加载和优化显得尤为重要。以下将详细讲解ListView的分页加载机制以及相关的优化策略。 1. **分页加载原理**: 分页...

Global site tag (gtag.js) - Google Analytics