`
chriszeng87
  • 浏览: 743577 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ListView优化之ViewType使用

阅读更多

转自:http://www.cnblogs.com/avenwu/archive/2013/04/09/3010462.html

 

对ListView的优化可以采用ViewHolder,其原理就是复用了convertView,public View getView(int position, View convertView, ViewGroup parent),

有时ListView并不是每个item的布局都相同,比如:

,这个时候传递进来convertView就不能很好的工作,解决方法,可以通过ViewType实现多个不同View复用。

        public View getView(int position, View convertView, ViewGroup parent) {
        // loading view
if (getItemViewType(position) == VIEW_TYPE_LOADING) { if (convertView == null) { convertView = getLayoutInflater(null).inflate( R.layout.list_item_stream_status, parent, false); }           //...return convertView; } else {
        //data view Activity activity
= (Activity) getItem(position); if (convertView == null) { convertView = getLayoutInflater(null).inflate( R.layout.list_item_stream_activity, parent, false); }           //... return convertView; } }

 

 

 
 
分享到:
评论

相关推荐

    ListView加载不同布局.zip

    在Android开发中,ListView...在实际应用中,你可能还需要考虑更多细节,如数据与布局类型的映射策略、优化ListView的滚动性能等。通过这种方式,我们可以灵活地定制ListView的显示效果,为用户提供更丰富的视觉体验。

    ListView加载多item布局

    本教程将深入探讨如何实现这一功能,并结合性能优化策略,使ListView在处理大量数据时仍能保持流畅的用户体验。 1. **多类型Item布局** 在ListView中,我们可能需要显示不同类型的数据,比如有的item是用户头像和...

    ListView加载多种布局

    前者告诉系统在哪个位置的Item使用哪种布局,后者返回布局的总数。 ```java public class MultiLayoutAdapter extends BaseAdapter { // 数据源 private List<Object> dataList; @Override public int ...

    ListView加载多个布局

    4. **视图复用(ViewHolder模式)**:为了优化性能,通常采用ViewHolder设计模式。ViewHolder是一个简单的类,持有ListView项视图的引用。在`getView()`中,先检查convertView是否为空,如果非空,则直接获取...

    android Listview 分栏显示

    默认情况下,ListView的所有条目都使用相同的视图,但我们可以自定义Adapter来实现多种布局的效果。 1. **创建自定义Adapter** - 继承`BaseAdapter`或者使用已有的Adapter类如`ArrayAdapter`作为基础。 - 重写`...

    Android-使用RecyclerView实现GridView和ListView混排的效果

    本文将深入探讨如何使用RecyclerView实现GridView和ListView混排的效果,这对于创建复杂和自定义的用户界面非常有用。 首先,RecyclerView的核心概念是Adapter和ViewHolder。Adapter负责填充数据并将其呈现到视图中...

    android的ListView点击item使item展开的做法

    3. `convertView(View convertView, ViewGroup parent, int viewType)`: 这个方法用于创建或复用ListView的item视图。根据`viewType`,我们可以创建不同类型的视图。对于展开的item,我们需要在视图中添加额外的布局...

    Android ListView分类实现 - 第二种实现方式

    在Android开发中,ListView是一种常用的视图组件,用于展示大量数据列表。本篇文章将深入探讨...在实际开发中,可以根据需求进行扩展,例如添加动画效果,优化滚动性能,或者使用更高效的RecyclerView替换ListView。

    Android ListView 不同类型item展示

    这种技术允许开发者在一个ListView中混合使用多种视图类型,为用户提供更丰富的交互体验。 一、ListView的工作原理 ListView通过Adapter来与数据源连接,Adapter是数据和视图之间的桥梁。它负责将数据转化为可以...

    Android中RecyclerView嵌套RecyclerView或嵌套ListView

    本文将详细探讨如何在Android应用中实现RecyclerView的嵌套使用,包括嵌套RecyclerView以及嵌套ListView。 一、RecyclerView简介 RecyclerView是Android SDK中的一个视图组件,用于展示可滚动的数据集。它提供了...

    android listView item动态加入多个layout

    在Android开发中,ListView是一种常用的...同时,注意优化性能,避免因频繁的视图创建和销毁导致的性能问题。在实际开发中,还可以结合Header和Footer视图,以及Header/Footer的动态添加,实现更复杂的列表展示效果。

    android listview

    2. **ListView优化** - **ViewHolder模式**:为了提高ListView的滚动流畅性,通常会使用ViewHolder设计模式。ViewHolder持有ListView项的视图引用,避免在滚动时频繁地查找子View。这样可以减少因查找View而导致的...

    安卓listview相关相关-一个简单的实现双listview共存demo.rar

    - **适配不同数据**: 可能需要创建不同的ViewType,以便区分两个ListView的item,这样在onCreateViewHolder和onBindViewHolder方法中可以为每个ListView提供不同的视图。 - **事件监听**: 分别为两个ListView设置...

    Android-用ListView模仿ExpandableListView

    这种方式适用于简单的场景,但当子项数量庞大或者需要更复杂交互时,还是建议使用原生的ExpandableListView,因为它提供了更丰富的内置功能和优化。在实际项目中,开发者应根据需求选择最适合的解决方案。

    android listview 的 getViewTypeCount和getItemViewType

    通过正确地使用`getViewTypeCount()`和`getItemViewType()`,你可以有效地管理ListView的视图复用,优化性能,同时实现复杂的样式布局,如混合不同的视图类型。这种技术在处理包含广告、分隔线、头部或尾部视图的...

    ListView显示不同类型的列表项的例子

    总的来说,通过自定义Adapter和定义多种`ViewType`,我们可以在同一个ListView中灵活地展示不同类型的列表项。这不仅可以提升用户体验,还能使应用界面更加丰富多彩。在实际开发中,这种方法经常被用来处理各种复杂...

    ListView中getItemViewType与getViewTypeCount的研究代码

    本篇文章将深入探讨ListView中的两个关键方法——`getItemViewType`和`getViewTypeCount`,它们对于优化ListView的性能和提升用户体验起着至关重要的作用。 `getItemViewType(int position)`方法是ListView的...

    RecyclerView下实现 ListView和GridView 混排

    RecyclerView通过ViewHolder模式优化了列表滚动的性能,每个ViewHolder负责持有一个或一组可重用的视图。当数据项需要显示时,RecyclerView会复用已有的ViewHolder,而不是每次都创建新的视图。为了实现混排,我们...

    简单实现固定组名称的ListView

    - 使用convertView复用机制,避免频繁创建新的视图对象,提高性能。 - 注意避免在滚动过程中进行过多的计算和布局更新,这可能会影响滚动的流畅性。 5. **代码示例**: ```java public class ...

    分类型listview

    这样做有助于优化性能,因为ListView可以根据返回的视图类型复用相应的convertView,避免了不必要的视图转换。 其次,`getViewTypeCount()`方法是与`getItemViewType(int position)`紧密相关的。它返回的是ListView...

Global site tag (gtag.js) - Google Analytics