ExpandListView 多个ItemView的效率优化
来源:互联网 发布:欢乐麻将辅助软件 编辑:程序博客网 时间:2024/04/29 04:12
最近在项目遇到一个问题,就是在ExpandListView中有多个ItemView和groupView 每次都需要初始化,这个效率只能呵呵了!思路是如此出发的!
以前我们使用在一个Listview只有单个itemView优化如下!
FitListViewHolder viewHolder;if (convertView == null) {convertView = LayoutInflater.from(context).inflate(R.layout.fitlistitem, null);viewHolder = new FitListViewHolder(convertView, context);convertView.setTag(viewHolder);} else {viewHolder = (FitListViewHolder) convertView.getTag();}// 装载数据viewHolder.setContent(yiLists.get(position));
大部分人应该都是这么处理的,我也是这样处理的!
一次类推如果为多个责直接扩展为:
if (symptomResultType == SymptomResultType.SYMPTOM_TYPE_COMMON_METHOD) { CommonMethodViewHolder viewHolder; if(convertView == null || !(convertView.getTag() instanceof CommonMethodViewHolder)) { convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item_common_method, null); viewHolder = new CommonMethodViewHolder(convertView, mContext); convertView.setTag(viewHolder); }else{ viewHolder = (CommonMethodViewHolder) convertView.getTag(); } Object[] userMethods = userSymptomResultModel.userMethodDatas.toArray(); viewHolder.setMethodContent((UserMethod) userMethods[childPosition]); return convertView; } else if (symptomResultType == SymptomResultType.SYMPTOM_TYPE_HABIT) { UserHabitViewHolder viewHolder; if(convertView == null || !(convertView.getTag() instanceof UserHabitViewHolder)) { convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item_habit, null); viewHolder = new UserHabitViewHolder(convertView, mContext); convertView.setTag(viewHolder); }else{ viewHolder = (UserHabitViewHolder) convertView.getTag(); } Object[] userHabits = userSymptomResultModel.userHabitDatas.toArray(); viewHolder.setHabitContent((UserHabit) userHabits[childPosition]); return convertView; }
中心思想就是根据contentView是否为空或者不为空的情况下获取gettag然后看看是否是当前item需要的View,如果不是责再去创建。根据tag去获取就OK了!
debug执行了我想要的结果!
欢迎大家拍砖!
0 0
- ExpandListView 多个ItemView的效率优化
- ExpandListView 多个ItemView的效率优化
- 一个adapter实现多个itemView
- 关于Android ListView 多ItemView的问题
- Expandlistview的使用
- ExpandListView的使用
- ExpandListview
- 万能的ItemView
- 【分享】PHP 提升优化效率的53个技巧!
- 优化openfire服务器提升xmpp 效率的15个方法
- expandlistview 加伸缩的动画
- 关于expandlistview的简单使用
- ExpandListView 的一种巧妙写法
- ExpandListView 的一种巧妙写法
- PHP的效率优化
- PHP的效率优化
- 优化递归的效率
- DPDK的效率优化
- 第11周项目4-特殊的三位数
- 如何复制对冲基金的成功?
- applicaitonDelegate2
- QT 标准对话框
- 时针分针秒针一天重合几次
- ExpandListView 多个ItemView的效率优化
- 每天一个linux命令(22):find 命令的参数详解
- 模型先生西蒙斯——世界上最赚钱的数学家
- python字符串操作,统计子串在字符串中出现字数
- 递推法(大数阶乘)
- SIP压力测试最好的工具,SIPp的安装与使用 (第一章)
- 对于目前流行的量化投资与smart beta策略的一些看法
- 用objective-c 实现常用算法(冒泡、选择、快速、插入)
- 为什么一个Java源文件最多只能有一个public类