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

相關文章
相關標籤/搜索