Android Adapter中的getView缓存失效


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

参数:缓存

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

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

可是通过测试发现 这个缓存并不许确。测试

因此本身作了个缓存:spa

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;
}

完成。get

若是有错请指点~ 有问题请留言~it

相关文章
相关标签/搜索