ListView优化的几点建议
Posted wjinhhua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ListView优化的几点建议相关的知识,希望对你有一定的参考价值。
1、根据android官方文档的说明:在Adapter中使用ViewHolder(在android5.0materials design中的组件RecyclerView已经体现),在getView方法中复用convertView,设置tag。
自己的部分代码片段:
@Override
public View getView(int position, View convertView, ViewGroup parent)
View view;
ViewHolder holder = null;
if (convertView == null)
view = LayoutInflater.from(context).inflate(R.layout.layout_item_xiaohua, null);
holder = new ViewHolder();
holder.tv_xiaohua_title = (TextView) view.findViewById(R.id.tv_xiaohua_title);
holder.tv_xiaohua_content = (TextView) view.findViewById(R.id.tv_xiaohua_content);
holder.tv_xiaohua_time = (TextView) view.findViewById(R.id.tv_xiaohua_time);
view.setTag(holder);
else
view = convertView;
holder = (ViewHolder) view.getTag();
XiaoHuaBean.XiaoHuaList xiaoHuaList = list.get(position);
String hadRead = SharePrefUtil.getString(context, "hadread", "");
if (hadRead.contains(xiaoHuaList.title))
holder.tv_xiaohua_title.setTextColor(context.getResources().getColor(R.color.colorGray));
holder.tv_xiaohua_content.setTextColor(context.getResources().getColor(R.color.colorGray));
holder.tv_xiaohua_time.setTextColor(context.getResources().getColor(R.color.colorGray));
holder.tv_xiaohua_title.setText(xiaoHuaList.title);
holder.tv_xiaohua_content.setText(xiaoHuaList.text);
holder.tv_xiaohua_time.setText(xiaoHuaList.ct);
return view;
private class ViewHolder
private TextView tv_xiaohua_title;
private TextView tv_xiaohua_content;
private TextView tv_xiaohua_time;
2、item中含有图片的时候,设置滑动的时候不加载图片,对图片的处理很重要,如果对图片的质量要求不是很高的情况,尽量压缩一下,大图处理是防止内存溢出的关键。
3、把scrollingCache和animationCache设置为false。
4、数据量庞大的时候,尽量使用分页加载处理。
5、尽量使用ApplicationContext,避免在getView方法中使用复杂的业务逻辑和线程,避免在Adapter中使用static定义全局变量。
以上是关于ListView优化的几点建议的主要内容,如果未能解决你的问题,请参考以下文章