ListView和GridView多次調(diào)用GetView方法解決

轉(zhuǎn)自:http://blog.csdn.net/u011889786/article/details/52143268

一涵紊、ListView

原因

ListView的高度不確定技扼,一般用的是wrap_content,導(dǎo)致系統(tǒng)需要不斷測量,也就多次調(diào)用onMeasure()方法,所以就多次調(diào)用getView()方法锦庸。

解決方法

把寬高寫死(給個精確數(shù)字,或者match_parent)

二、GridView

原因

貌似不管長寬寫不寫死都是會多次調(diào)用getView绳慎。。漠烧。原因待補充

解決方法

onMeasure()調(diào)用getView的時候不要去對convertView做任何賦值的操作偷线,只有當(dāng)onLayout的時候我們再對ConvertView操作

public class MyGridView extends GridView {  
    public boolean isOnMeasure;  
    public MyGridView(Context context) {  
        super(context);  
    }  
  
    public MyGridView(Context context, AttributeSet attrs) {  
        super(context, attrs);  
    }  
  
  
    public MyGridView(Context context, AttributeSet attrs, int defStyle) {  
        super(context, attrs, defStyle);  
    }  
  
    @Override  
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
        isOnMeasure = true;  
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);  
    }  
  
    @Override  
    protected void onLayout(boolean changed, int l, int t, int r, int b) {  
        isOnMeasure = false;  
        super.onLayout(changed, l, t, r, b);  
    }  
}  

adapter getView();

public View getView(int position, View convertView, ViewGroup parent) {  
    System.out.println("xcqw getView  1***position"+position);  

    ViewHolder holder = null;  
    if (convertView == null) {  
        convertView = inflater.inflate(R.layout.item,  
                parent, false);  
        holder = new ViewHolder();  
        holder.tvContent = (TextView) convertView.findViewById(R.id.tv_content);  
        convertView.setTag(holder);  
    } else {  
        holder = (ViewHolder) convertView.getTag();  
    }  


    if(((MyGridView) parent).isOnMeasure){  
        //如果是onMeasure調(diào)用的就立即返回  
        return convertView;  
    }  
    System.out.println("xcqw getView  2***position"+position);  

    //如果不是onMeasure調(diào)用的就可以正常賦值操作  
    String content = contentList.get(position);  
    holder.tvContent.setText(content);  

    return convertView;  
}  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市沽甥,隨后出現(xiàn)的幾起案子声邦,更是在濱河造成了極大的恐慌,老刑警劉巖摆舟,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亥曹,死亡現(xiàn)場離奇詭異,居然都是意外死亡恨诱,警方通過查閱死者的電腦和手機(jī)媳瞪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來照宝,“玉大人蛇受,你說我怎么就攤上這事〔蘧椋” “怎么了兢仰?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長剂碴。 經(jīng)常有香客問我把将,道長,這世上最難降的妖魔是什么忆矛? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任察蹲,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘洽议。我一直安慰自己宗收,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布亚兄。 她就那樣靜靜地躺著混稽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪儿捧。 梳的紋絲不亂的頭發(fā)上荚坞,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天,我揣著相機(jī)與錄音菲盾,去河邊找鬼颓影。 笑死,一個胖子當(dāng)著我的面吹牛懒鉴,可吹牛的內(nèi)容都是我干的诡挂。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼临谱,長吁一口氣:“原來是場噩夢啊……” “哼璃俗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起悉默,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤城豁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后抄课,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唱星,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年跟磨,在試婚紗的時候發(fā)現(xiàn)自己被綠了间聊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡抵拘,死狀恐怖哎榴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情僵蛛,我是刑警寧澤尚蝌,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站墩瞳,受9級特大地震影響驼壶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜喉酌,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧泪电,春花似錦般妙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至突诬,卻和暖如春苫拍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背旺隙。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工绒极, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蔬捷。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓垄提,卻偏偏與公主長得像,于是被迫代替她去往敵國和親周拐。 傳聞我的和親對象是個殘疾皇子铡俐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361