`

ListView的滑动效率问题

阅读更多
    如何提高ListView的滚动速度,ListView的滚动速度的提高在于getView方法的实现,通常我们的getView方法会这样写:
View getView(int position,View convertView,ViewGroup parent){
    //首先构建LayoutInflater
     LayoutInflater factory = LayoutInflater.from(context);
                  View view = factory.inflate(R.layout.id,null);
    //然后构建自己需要的组件
      TextView text = (TextView) view.findViewById(R.id.textid);
      .
      .
     return view;
}


    这样ListView的滚动速度其实是最慢的,因为adapter每次加载的时候都要重新构建LayoutInflater和所有你的组件.而下面的方法是相对比较好的:
View getView(int position,View contertView,ViewGroup parent){
    //如果convertView为空,初始化convertView
     if(convertView == null)
       {
        LayoutInflater factory = LayoutInfater.from(context);
                   convertView = factory.inflate(R.layout.id,null);
       }
   //然后定义你的组件
     (TextView) convertView.findViewById(R.id.textid);
     return convertView;
}


    这样做的好处就是不用每次都重新构建convertView,基本上只有在加载第一个item时会创建convertView,这样就提高了adapter的加载速度,从而提高了ListView的滚动速度.而下面这种方法则是最好的:
//首先定义一个你 用到的组件的类:
static class ViewClass{
     TextView textView;
     .
     .
}

View getView(int position,View convertView,ViewGroup parent){
     ViewClass view ;
      if(convertView == null){
         LayoutInflater factory = LayoutInflater.from(context);
                    convertView = factory.inflate(R.layout.id,null);
         view = new ViewClass();
         view.textView = (TextView) 
                          convertView.findViewById(R.id.textViewid);
        .
        .
         convertView.setTag(view);
       }else{
          view =(ViewClass) convertView.getTag();
}
//然后做一些自己想要的处理,这样就大大提高了adapter的加载速度,从而大大提高了ListView的滚动速度问题.

}


这个是在eoe里看到的一个帖子,觉得速度就是建越少的对象,就效率越高...希望能帮到需要的人.看到了觉得好的回个贴,鼓励下我,那样我写贴的积极性就大多了,呵呵.....
分享到:
评论
5 楼 liufuning 2011-10-24  
太棒了,非常感谢
4 楼 龙哥IT 2011-10-18  
...希望能帮到需要的
3 楼 ldci3gandroid 2011-08-26  
哈哈 谢谢您的分享 很收益~
2 楼 苹果超人 2011-06-15  
1 楼 xiaor186 2011-01-27  
呵呵,这篇文章对我的用处不大,因为我一直都是用你说的最高效的那种方式来做的,但是从来没想过太多,只要我构建adapter,就是习惯性的就那么做了,呵呵。不过看了你的文章好歹也算是让我知道这么做最高效了。呵呵

相关推荐

    ListView滑动删除item

    ListView的滑动删除功能使得用户可以方便地通过手势操作来移除列表中的条目,极大地提升了用户体验。本篇将详细介绍如何实现ListView的滑动删除item的功能,并提供相关的编程技巧。 一、基本原理 滑动删除的核心...

    listview快速滑动,修改默认的滑动条

    本话题将重点讨论如何在ListView快速滑动时修改默认的滑动条,以提供更好的用户体验。 首先,我们来看`ListView`的基本用法。在XML布局文件中,我们可以直接添加`ListView`并为其设置ID: ```xml <ListView ...

    双listview 滑动 联动

    在Android开发中,"双ListView滑动联动"是一种常见的交互设计,主要应用于需要展示相互关联数据的场景,比如电商应用中的商品分类与商品列表。这种设计可以提高用户体验,让用户更直观地浏览和筛选信息。接下来,...

    Android-滑动listview标题置顶listview吸顶效果

    在自定义适配器中,你需要创建一个特殊的头部视图,该视图在ListView滑动时会保持在顶部。同时,需要监听ListView的滚动事件,以便正确地处理头部视图的位置。 接下来,我们来看ListView的吸顶效果。这个效果通常是...

    listview滑动删除效果

    "listview滑动删除效果"这个主题主要涉及到以下几个方面的知识点: 1. **SwipeRefreshLayout**: 在Android支持库中,SwipeRefreshLayout通常与ListView或RecyclerView一起使用,提供下拉刷新的功能。不过,要实现...

    listview滑动删除下拉刷新上拉分页

    "listview滑动删除下拉刷新上拉分页"这个主题涵盖了三个关键功能:滑动删除、下拉刷新和上拉分页,这些都是提高用户体验的重要特性。 1. **滑动删除**: 滑动删除是ListView的一项增强功能,允许用户通过左右滑动...

    安卓Android源码——listview快速滑动,修改默认的滑动条.rar

    然而,当数据量大时,ListView在快速滑动时可能会出现性能问题,同时,其默认的滚动条可能不符合设计需求。本资料包“安卓Android源码——listview快速滑动,修改默认的滑动条.rar”提供了解决这些问题的解决方案。 ...

    listView 拖动排序、滑动删除框架

    拖动排序和滑动删除功能在许多应用中都是必要的,它们提高了用户交互的便捷性和效率。本框架"drag-sort-listview"正是专注于实现这些高级功能的一个开源库。 首先,让我们详细了解一下拖动排序。拖动排序允许用户...

    Android仿QQ消息列表ListView滑动删除效果

    QQ消息列表的滑动删除效果是用户体验设计中的一种常见功能,它允许用户通过简单的手势操作来删除列表中的条目,提高了交互的效率和趣味性。这个效果在很多社交应用中都有应用,如微信、QQ等。下面我们将深入探讨如何...

    listView滑动删除(加入nieoldandroid库)

    8. **性能优化**:在大数据量的列表中,滑动删除操作可能会导致性能问题,因此NieOldAndroid库需要进行性能优化,如使用DiffUtil来减少不必要的视图更新,或者在数据结构上进行优化以提高删除操作的效率。...

    ListView固定头部及某一列,可上下左右滑动

    在特定场景下,我们可能需要实现ListView的头部固定以及某列固定的效果,同时允许用户进行上下左右滑动来浏览更多的内容。这个功能在设计用户界面时,能够提供更好的用户体验,尤其是在处理大数据表格或者长列表时。...

    android 快速滑动listview,快速滑动右边的一排字母,快速查找对应的信息,滑动同时还有方块显示滑动到哪个字母

    在Android开发中,快速滑动ListView并配合右侧字母索引栏是一种常见的优化用户搜索和浏览体验的方法。这种设计常见于联系人应用或者其他需要大量数据分组显示的应用中,让用户能够快速定位到目标信息,提高效率。...

    ListView异步加载图片和文字,避免内存溢出和滑动效率

    一、内存溢出与滑动效率问题 1. 内存溢出:当应用程序请求的内存超过系统分配的最大值时,就会发生内存溢出。在ListView中,如果一次性加载所有数据,特别是大图,可能导致内存占用过高,引发OOM。 2. 滑动效率:...

    listview滑动删除

    在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表。ListView滑动删除功能是用户交互体验...在实际开发中,合理运用第三方库可以提高开发效率,但理解底层实现原理对于解决问题和优化代码同样重要。

    ListView滑动效果

    标题"ListView滑动效果"主要涵盖以下知识点: 1. **基本滑动效果**:ListView默认支持上下滑动,通过手指上下滑动可以浏览列表中的项目。这是ListView最基础的滑动效果。 2. **侧滑删除**:这是一种常见的扩展功能...

    ListView嵌套GridView实现左右滑动的效果

    3. 滑动效果:为了实现左右滑动,可以在ListView的列表项中使用HorizontalScrollView作为容器。将GridView放入HorizontalScrollView中,这样用户就可以水平滑动GridView。注意,因为HorizontalScrollView已经处理了...

    ListView滑动删除

    一、ListView滑动删除的基础概念 滑动删除,通常指的是用户在ListView的某一行上进行左右滑动,触发一个删除操作。这种交互方式常见于各种应用中,如邮件客户端、待办事项列表等,提供了一种直观且高效的删除方式。...

    仿美团外卖两个ListView联动,左边点击切换右边,右边滑动切换左边

    当用户在右侧ListView滑动时,根据滑动的方向和位置更新左侧ListView的选中状态。 5. **标题切换**: 在右侧ListView滑动时,顶部应显示当前分类的标题。这可以通过在布局中添加TextView,并在滑动监听器中更新其...

    自定义横向滑动Listview 类

    通过这个自定义控件,开发者不仅可以快速实现横向滑动列表的需求,还能减少代码的复杂性,提高开发效率。当然,如果想要进一步定制,如增加更多交互效果或优化性能,可能还需要对源码进行深入理解和修改。总之,这个...

    ListView的效率提高示例

    6. **监听滑动事件**:使用`OnScrollListener`可以监听ListView的滑动状态,例如,在用户向上滑动时,可以提前加载下一页数据。 7. **避免在点击事件中进行耗时操作**:点击事件应当快速响应,任何耗时操作都应放在...

Global site tag (gtag.js) - Google Analytics