都知道Adapter中的getView是为了返回listView的每个item

参数:

public View getView(final int position, View convertView, ViewGroup parent) {

为了节省效率 Android提供了第二个参数convertView为了帮助缓存view.

但是经过测试发现 这个缓存并不准确。

所以自己做了个缓存:

public View getView(final int position, View convertView, ViewGroup parent) {
        //Log.i(TAG,"getView " + position + " " + convertView);
        //缓存
        String nowPosString = String.valueOf(position)+"_position";
        View newCViewonvertView = viewHold.get(nowPosString); //map
        if(newCViewonvertView == null)
        {
            LayoutInflater _LayoutInflater = LayoutInflater.from(mContext);
            newCViewonvertView = _LayoutInflater.inflate(R.layout.item, null);
            //自行缓存view
            viewHold.put(nowPosString, newCViewonvertView);
                }
    return newCViewonvertView;
}

完成。

如果有错请指点~ 有问题请留言~