浅谈Android开发中ListView控件性能的一些优化方法

2019-12-10 19:15:52刘景俊
易采站长站为您分析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;

}