易采站长站为您分析Android开发中ListView控件性能的一些优化方法,需要的朋友可以参考下
ListView优化一直是一个老生常谈的问题,不管是面试还是平常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看如何最大化的优化ListView的性能。
1.在adapter中的getView方法中尽量少使用逻辑
2.尽最大可能避免GC
3.滑动的时候不加载图片
4.将ListView的scrollingCache和animateCache设置为false
5.item的布局层级越少越好
6.使用ViewHolder
下面就具体来看一些
1.在adapter中的getView方法中尽量少使用逻辑
不要在你的getView()中写过多的逻辑代码,我们可以将这些代码放在别的地方,例如:
优化前的getView():
@Override
public View getView(intposition, View convertView, ViewGroup paramViewGroup) {
Object current_event = mObjects.get(position);
ViewHolder holder =null;if(convertView ==null) {
holder =newViewHolder();
convertView = inflater.inflate(R.layout.row_event,null);
holder.ThreeDimension = (ImageView) convertView.findViewById(R.id.ThreeDim);
holder.EventPoster = (ImageView) convertView.findViewById(R.id.EventPoster);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
//在这里进行逻辑判断,这是有问题的
if(doesSomeComplexChecking()) {
holder.ThreeDimention.setVisibility(View.VISIBLE);
}else{
holder.ThreeDimention.setVisibility(View.GONE);
}
// 这是设置image的参数,每次getView方法执行时都会执行这段代码,这显然是有问题的
RelativeLayout.LayoutParams imageParams =newRelativeLayout.LayoutParams(measuredwidth, rowHeight);
holder.EventPoster.setLayoutParams(imageParams);
returnconvertView;
}










