ListView的优化方案
1、如果自定义适配器,那么在getView方法中要考虑方法传进来的参数contentView是否为null,如果为null就创建contentView并返回,如果不为null则直接使用。在这个方法中尽可能少创建view。
2、给contentView设置tag(setTag()),传入一个viewHolder对象,用于缓存要显示的数据,可以达到图像数据异步加载的效果。
3、如果listview需要显示的item很多,就要考虑分页加载。比如一共要显示100条或者更多的时候,我们可以考虑先加载20条,等用户拉到列表底部的时候再去加载接下来的20条。
现在主要是不知道第三种优化如何写,下面我站写代码,请各位大虾按第三种写下,谢谢了
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder = null;
if(convertView == null)
{
convertView = inflater.inflate(R.layout.albumlistadapter, null);
holder = new ViewHolder();
holder.text = (TextView)convertView.findViewById(R.id.name);
convertView.setTag(holder);
}
else
holder = (ViewHolder)convertView.getTag();
holder.text.setText("a");
return convertView;
}
private final class ViewHolder
{
public TextView text;
}
代码写的太乱,问题问的太笼统。
大概思路:
1. 定义一个int 变量,用来记录已经加载了多少个分页。
2. 监听 listview 的 scroll listener ,一旦用户滑到底部,就开始加载后面的分页